Tidy up French GUI.
[nssm.git] / README.txt
index 12a8393..34bacc0 100644 (file)
@@ -70,6 +70,10 @@ Since version 2.25, NSSM can execute commands in response to service events.
 \r
 Since version 2.25, NSSM can list services it manages.\r
 \r
+Since version 2.25, NSSM can dump the configuration of services it manages.\r
+\r
+Since version 2.25, NSSM can show the processes managed by a service.\r
+\r
 \r
 Usage\r
 -----\r
@@ -367,6 +371,21 @@ error-prone than simply redirecting the I/O streams before launching the
 application.  Therefore online rotation is not enabled by default.\r
 \r
 \r
+Timestamping output\r
+-------------------\r
+When redirecting output, NSSM can prefix each line of output with a\r
+millisecond-precision timestamp, for example:\r
+\r
+    2016-09-06 10:17:09.451 Pipeline main started\r
+\r
+To enable timestamp prefixing, set AppTimestampLog to a non-zero value.\r
+\r
+The prefix applies to both stdout and stderr.  Prefixing requires\r
+intercepting the application's I/O in the same way that online rotation\r
+does.  If log rotation and timestamp prefixing are both enabled, the\r
+rotation will be online.\r
+\r
+\r
 Environment variables\r
 ---------------------\r
 NSSM can replace or append to the managed application's environment.  Two\r
@@ -553,6 +572,10 @@ resumes from standby by setting AppEvents\Power\Resume to:
 \r
     %NSSM_EXE% restart %NSSM_SERVICE_NAME%\r
 \r
+To set a hook on the command line, use\r
+\r
+    nssm set <servicename> AppEvents <event>/<action> <command>\r
+\r
 Note that NSSM will abort the startup of the application if a Start/Pre hook\r
 returns exit code of 99.\r
 \r
@@ -729,6 +752,34 @@ separate command line arguments.  For example:
 \r
     nssm set <servicename> DependOnService RpcSs LanmanWorkstation\r
 \r
+Alternatively the dependency name can be prefixed with a + or - symbol to\r
+respectively add or remove a dependency.\r
+\r
+The following two lines set dependencies on RpcSs and LanmanWorkstation:\r
+\r
+    nssm set <servicename> DependOnService RpcSs\r
+    nssm set <servicename> DependOnService +LanmanWorkstation\r
+\r
+The follwing syntax removes the dependency on RpcSs:\r
+\r
+    nssm set <servicename> DependOnService -RpcSs\r
+\r
+Service groups should, strictly speaking, be prefixed with the + symbol.\r
+To specify a single dependency on a group, the + symbol can be prefixed\r
+with the : symbol.\r
+\r
+The following lines are equivalent, and each set a dependency ONLY on\r
+NetBIOSGroup:\r
+\r
+    nssm set <servicename> DependOnGroup NetBIOSGroup\r
+    nssm set <servicename> DependOnGroup :NetBIOSGroup\r
+    nssm set <servicename> DependOnGroup :+NetBIOSGroup\r
+\r
+Whereas these lines add to any existing dependencies:\r
+\r
+    nssm set <servicename> DependOnGroup +NetBIOSGroup\r
+    nssm set <servicename> DependOnGroup ++NetBIOSGroup\r
+\r
 \r
 The Name parameter can only be queried, not set.  It returns the service's\r
 registry key name.  This may be useful to know if you take advantage of\r
@@ -758,6 +809,7 @@ parameter can be omitted when using them:
   "LocalSystem" aka "System" aka "NT Authority\System"\r
   "LocalService" aka "Local Service" aka "NT Authority\Local Service"\r
   "NetworkService" aka "Network Service" aka "NT Authority\Network Service"\r
+  Virtual service account "NT Service\<servicename>"\r
 \r
 \r
 The Start parameter is used to query or set the startup type of the service.\r
@@ -800,6 +852,20 @@ NSSM offers rudimentary service control features.
 \r
     nssm status <servicename>\r
 \r
+    nssm statuscode <servicename>\r
+\r
+The output of "nssm status" and "nssm statuscode" is a string\r
+representing the service state, eg SERVICE_RUNNING.\r
+\r
+The exit code of "nssm status" will be 0 if the status was\r
+succesfully retrieved.  If the exit code is not zero there was\r
+an error.\r
+\r
+The exit code of "nssm statuscode" will be the numeric value\r
+of the service state, eg 4 for SERVICE_RUNNING.  Zero is not a\r
+valid service state code.  If the exit code is zero there was\r
+an error.\r
+\r
 \r
 Removing services using the GUI\r
 -------------------------------\r
@@ -838,6 +904,43 @@ The following command will print the names of all services managed by NSSM:
 \r
     nssm list\r
 \r
+To see all services on the system, not just NSSM's, use list all:\r
+\r
+    nssm list all\r
+\r
+\r
+Showing processes started by a service\r
+--------------------------------------\r
+The following command will print the process ID and executable path of\r
+processes started by a given service:\r
+\r
+    nssm processes <servicename>\r
+\r
+Note that if 32-bit NSSM is run on a 64-bit system running an older version of\r
+Windows than Vista it will not be able to query the paths of 64-bit processes.\r
+\r
+\r
+Exporting service configuration\r
+-------------------------------\r
+NSSM can dump commands which would recreate the configuration of a service.\r
+The output can be pasted into a batch script to back up the service or\r
+transfer to another computer.\r
+\r
+    nssm dump <servicename>\r
+\r
+Because the service configuration may contain characters which need to be\r
+quoted or escaped from the command prompt, NSSM tries hard to produce\r
+output which will work correctly when run as a script, by adding quotes\r
+and caret escapes as appropriate.\r
+\r
+To facilitate copying a service, the dump command accepts a second\r
+argument which specifies the name of the service to be used in the output.\r
+\r
+    nssm dump <servicename> <newname>\r
+\r
+Lines in the dump will reference the <newname> service while showing the\r
+configuration of <servicename>.\r
+\r
 \r
 Example usage\r
 -------------\r
@@ -933,6 +1036,12 @@ Thanks to Paul Baxter for help with Visual Studio 2015.
 Thanks to Mathias Breiner for help with Visual Studio and some registry fixes.\r
 Thanks to David Bremner for general tidyups.\r
 Thanks to Nabil Redmann for suggesting redirecting hooks' output.\r
+Thanks to Bader Aldurai for suggesting the process tree.\r
+Thanks to Christian Long for suggesting virtual accounts.\r
+Thanks to Marcin Lewandowski for spotting a bug appending to large files.\r
+Thanks to Nicolas Ducrocq for suggesting timestamping redirected output.\r
+Thanks to Meang Akira Tanaka for suggestion and initial implementation of\r
+the statuscode command.\r
 \r
 Licence\r
 -------\r