\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
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
\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
"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
\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
\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
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