From: Iain Patterson Date: Sun, 4 Apr 2010 17:34:48 +0000 (+0100) Subject: NSSM 2.2. X-Git-Tag: v2.2^0 X-Git-Url: http://git.iain.cx/?p=nssm.git;a=commitdiff_plain;h=44284fb9f67e45b3fe7dcfa272f5ac01bc184022 NSSM 2.2. --- diff --git a/README.txt b/README.txt index 84a34ba..2d38eaf 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ NSSM: The Non-Sucking Service Manager -Version 2.1, 2009-12-28 by Benjamin Mayrargue (www.softlion.com) +Version 2.2, 2010-04-04 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 @@ -17,6 +17,9 @@ 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. + Usage ----- @@ -56,13 +59,37 @@ 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_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. 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. Removing services using the GUI diff --git a/nssm.h b/nssm.h index ac4c246..9b8c7cd 100644 --- a/nssm.h +++ b/nssm.h @@ -13,8 +13,8 @@ int str_equiv(const char *, const char *); #define NSSM "nssm" -#define NSSM_VERSION "2.1" -#define NSSM_DATE "2009-12-28" +#define NSSM_VERSION "2.2" +#define NSSM_DATE "2010-04-04" #define NSSM_RUN "run" #endif