NSSM 2.2. v2.2
authorIain Patterson <me@iain.cx>
Sun, 4 Apr 2010 17:34:48 +0000 (18:34 +0100)
committerIain Patterson <me@iain.cx>
Sun, 4 Apr 2010 20:36:50 +0000 (21:36 +0100)
README.txt
nssm.h

index 84a34ba..2d38eaf 100644 (file)
@@ -1,5 +1,5 @@
 NSSM: The Non-Sucking Service Manager\r
-Version 2.1, 2009-12-28 by Benjamin Mayrargue (www.softlion.com)\r
+Version 2.2, 2010-04-04\r
 \r
 NSSM is a service helper program similar to srvany and cygrunsrv.  It can \r
 start any application as an NT service and will restart the service if it \r
@@ -17,6 +17,9 @@ options on the command line.
 Since version 2.1, NSSM can be compiled for x64 platforms.\r
 Thanks Benjamin Mayrargue.\r
 \r
+Since version 2.2, NSSM can be configured to take different actions\r
+based on the exit code of the managed application.\r
+\r
 \r
 Usage\r
 -----\r
@@ -56,13 +59,37 @@ Managing the service
 --------------------\r
 NSSM will launch the application listed in the registry when you send it a \r
 start signal and will terminate it when you send a stop signal.  So far, so \r
-much like srvany.  But NSSM is the Non-Sucking service manager and will take \r
+much like srvany.  But NSSM is the Non-Sucking service manager and can take \r
 action if/when the application dies.\r
 \r
-NSSM will try to restart itself if it notices that the application died but \r
-you didn't send it a stop signal.  NSSM will keep trying, pausing 30 seconds \r
-between each attempt, until the service is successfully started or you send \r
-it a stop signal.\r
+With no configuration from you, NSSM will try to restart itself if it notices\r
+that the application died but you didn't send it a stop signal.  NSSM will\r
+keep trying, pausing 30 seconds between each attempt, until the service is\r
+successfully started or you send it a stop signal.\r
+\r
+NSSM will look in the registry under\r
+HKLM\SYSTEM\CurrentControlSet\Services\<service>\Parameters\AppExit for\r
+string (REG_SZ) values corresponding to the exit code of the application.\r
+If the application exited with code 1, for instance, NSSM will look for a\r
+string value under AppExit called "1" or, if it does not find it, will\r
+fall back to the AppExit (Default) value.  You can find out the exit code\r
+for the application by consulting the system event log.  NSSM will log the\r
+exit code when the application exits.\r
+\r
+Based on the data found in the registry, NSSM will take one of three actions:\r
+\r
+If the value data is "Restart" NSSM will try to restart the application as\r
+described above.  This is its default behaviour.\r
+\r
+If the value data is "Ignore" NSSM will not try to restart the application\r
+but will continue running itself.  This emulates the (usually undesirable)\r
+behaviour of srvany.  The Windows Services console would show the service\r
+as still running even though the application has exited.\r
+\r
+If the value data is "Exit" NSSM will exit.  The Windows Services console\r
+would show the service as stopped.  If you wish to provide finer-grained\r
+control over service recovery you should use this code and edit the failure\r
+action manually.\r
 \r
 \r
 Removing services using the GUI\r
diff --git a/nssm.h b/nssm.h
index ac4c246..9b8c7cd 100644 (file)
--- a/nssm.h
+++ b/nssm.h
@@ -13,8 +13,8 @@
 int str_equiv(const char *, const char *);\r
 \r
 #define NSSM "nssm"\r
-#define NSSM_VERSION "2.1"\r
-#define NSSM_DATE "2009-12-28"\r
+#define NSSM_VERSION "2.2"\r
+#define NSSM_DATE "2010-04-04"\r
 #define NSSM_RUN "run"\r
 \r
 #endif\r