X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=README.txt;h=8a414314fd5b7100520c1bcc28a366b349fd239e;hb=0f7613aa2ff16b5ce916b63668f223afa0587477;hp=21718ba4a7b6414ba4be1a01ca4bb10f76e89225;hpb=167b3e74003ed8f2b61bda7037f31447c488c29b;p=nssm.git diff --git a/README.txt b/README.txt index 21718ba..8a41431 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ NSSM: The Non-Sucking Service Manager -Version 2.0, 2006-09-09 +Version 2.4, 2010-09-23 NSSM is a service helper program similar to srvany and cygrunsrv. It can start any application as an NT service and will restart the service if it @@ -7,9 +7,21 @@ fails for any reason. NSSM also has a graphical service installer and remover. +Full documentation can be found online at + + http://iain.cx/src/nssm/ + Since version 2.0, the GUI can be bypassed by entering all appropriate options on the command line. +Since version 2.1, NSSM can be compiled for x64 platforms. +Thanks Benjamin Mayrargue. + +Since version 2.2, NSSM can be configured to take different actions +based on the exit code of the managed application. + +Since version 2.3, NSSM logs to the Windows event log more elegantly. + Usage ----- @@ -49,13 +61,46 @@ Managing the service -------------------- NSSM will launch the application listed in the registry when you send it a start signal and will terminate it when you send a stop signal. So far, so -much like srvany. But NSSM is the Non-Sucking service manager and will take +much like srvany. But NSSM is the Non-Sucking service manager and can take action if/when the application dies. -NSSM will try to restart itself if it notices that the application died but -you didn't send it a stop signal. NSSM will keep trying, pausing 30 seconds -between each attempt, until the service is successfully started or you send -it a stop signal. +With no configuration from you, NSSM will try to restart itself if it notices +that the application died but you didn't send it a stop signal. NSSM will +keep trying, pausing 30 seconds between each attempt, until the service is +successfully started or you send it a stop signal. + +NSSM will look in the registry under +HKLM\SYSTEM\CurrentControlSet\Services\\Parameters\AppExit for +string (REG_EXPAND_SZ) values corresponding to the exit code of the application. +If the application exited with code 1, for instance, NSSM will look for a +string value under AppExit called "1" or, if it does not find it, will +fall back to the AppExit (Default) value. You can find out the exit code +for the application by consulting the system event log. NSSM will log the +exit code when the application exits. + +Based on the data found in the registry, NSSM will take one of three actions: + +If the value data is "Restart" NSSM will try to restart the application as +described above. This is its default behaviour. + +If the value data is "Ignore" NSSM will not try to restart the application +but will continue running itself. This emulates the (usually undesirable) +behaviour of srvany. The Windows Services console would show the service +as still running even though the application has exited. + +If the value data is "Exit" NSSM will exit gracefully. The Windows Services +console would show the service as stopped. If you wish to provide +finer-grained control over service recovery you should use this code and +edit the failure action manually. Please note that Windows versions prior +to Vista will not consider such an exit to be a failure. On older versions +of Windows you should use "Suicide" instead. + +If the value data is "Suicide" NSSM will simulate a crash and exit without +informing the service manager. This option should only be used for +pre-Vista systems where you wish to apply a service recovery action. Note +that if the monitored application exits with code 0, NSSM will only honour a +request to suicide if you explicitly configure a registry key for exit code 0. +If only the default action is set to Suicide NSSM will instead exit gracefully. Removing services using the GUI @@ -77,6 +122,18 @@ To remove a service without confirmation from the GUI, run Try not to remove essential system services... +Logging +------- +NSSM logs to the Windows event log. It registers itself as an event log source +and uses unique event IDs for each type of message it logs. New versions may +add event types but existing event IDs will never be changed. + +Because of the way NSSM registers itself you should be aware that you may not +be able to replace the NSSM binary if you have the event viewer open and that +running multiple instances of NSSM from different locations may be confusing if +they are not all the same version. + + Example usage ------------- To install an Unreal Tournament server: @@ -90,9 +147,16 @@ To remove the server: Building NSSM from source ------------------------- -NSSM is known to compile with Visual Studio 6 and Visual Studio 2005. +NSSM is known to compile with Visual Studio 6, Visual Studio 2005 and Visual +Studio 2008. +Credits +------- +Thanks to Bernard Loh for finding a bug with service recovery. +Thanks to Benjamin Mayrargue (www.softlion.com) for adding 64-bit support. +Thanks to Joel Reingold for spotting a command line truncation bug. + Licence ------- NSSM is public domain. You may unconditionally use it and/or its source code