浏览代码

NSSM 2.2.

Iain Patterson 15 年之前
父节点
当前提交
44284fb9f6
共有 2 个文件被更改,包括 35 次插入8 次删除
  1. 33 6
      README.txt
  2. 2 2
      nssm.h

+ 33 - 6
README.txt

@@ -1,5 +1,5 @@
 NSSM: The Non-Sucking Service Manager
 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 
 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 
 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.
 Since version 2.1, NSSM can be compiled for x64 platforms.
 Thanks Benjamin Mayrargue.
 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
 Usage
 -----
 -----
@@ -56,13 +59,37 @@ Managing the service
 --------------------
 --------------------
 NSSM will launch the application listed in the registry when you send it a 
 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 
 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.
 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\<service>\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
 Removing services using the GUI

+ 2 - 2
nssm.h

@@ -13,8 +13,8 @@
 int str_equiv(const char *, const char *);
 int str_equiv(const char *, const char *);
 
 
 #define NSSM "nssm"
 #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"
 #define NSSM_RUN "run"
 
 
 #endif
 #endif