X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=README.txt;h=0a0c47c62b577cdff51cbc700483b3a5a968ae0d;hb=2c60e5334f6df07bf42e7a91cf59638453eca473;hp=2fbe5c80dddb8118091587c7c8e63b6765624d07;hpb=4142e6c279f302b6b43e4e4d41ea7afaa89293a0;p=nssm.git diff --git a/README.txt b/README.txt index 2fbe5c8..0a0c47c 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ NSSM: The Non-Sucking Service Manager -Version 2.17, 2013-11-12 +Version 2.21, 2013-11-24 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 @@ -43,6 +43,23 @@ they can clean up and shut down gracefully on receipt of the event. Since version 2.17, NSSM can redirect the managed application's I/O streams to an arbitrary path. +Since version 2.18, NSSM can be configured to wait a user-specified amount +of time for the application to exit when shutting down. + +Since version 2.19, many more service options can be configured with the +GUI installer as well as via the registry. + +Since version 2.19, NSSM can add to the service's environment by setting +AppEnvironmentExtra in place of or in addition to the srvany-compatible +AppEnvironment. + +Since version 2.22, NSSM can rotate existing output files when redirecting I/O. + +Since version 2.22, NSSM can set service display name, description, startup +type and log on details. + +Since version 2.22, NSSM can edit existing services with the GUI. + Usage ----- @@ -182,6 +199,20 @@ Take great care when including 8 in the value of AppStopMethodSkip. If NSSM does not call TerminateProcess() it is possible that the application will not exit when the service stops. +By default NSSM will allow processes 1500ms to respond to each of the methods +described above before proceeding to the next one. The timeout can be +configured on a per-method basis by creating REG_DWORD entries in the +registry under HKLM\SYSTEM\CurrentControlSet\Services\\Parameters. + + AppStopMethodConsole + AppStopMethodWindow + AppStopMethodThreads + +Each value should be set to the number of milliseconds to wait. Please note +that the timeout applies to each process in the application's process tree, +so the actual time to shutdown may be longer than the sum of all configured +timeouts if the application spawns multiple subprocesses. + I/O redirection --------------- @@ -210,6 +241,63 @@ work. Remember, however, that the path must be accessible to the user running the service. +File rotation +------------- +When using I/O redirection, NSSM can rotate existing output files prior to +opening stdout and/or stderr. An existing file will be renamed with a +suffix based on the file's last write time, to millisecond precision. For +example, the file nssm.log might be rotated to nssm-20131221T113939.457.log. + +NSSM will look in the registry under +HKLM\SYSTEM\CurrentControlSet\Services\\Parameters for REG_DWORD +entries which control how rotation happens. + +If AppRotateFiles is missing or set to 0, rotation is disabled. Any non-zero +value enables rotation. + +If AppRotateSeconds is non-zero, a file will not be rotated if its last write +time is less than the given number of seconds in the past. + +If AppRotateBytes is non-zero, a file will not be rotated if it is smaller +than the given number of bytes. 64-bit file sizes can be handled by setting +a non-zero value of AppRotateBytesHigh. + +Rotation is independent of the CreateFile() parameters used to open the files. +They will be rotated regardless of whether NSSM would otherwise have appended +or replaced them. + + +Environment variables +--------------------- +NSSM can replace or append to the managed application's environment. Two +multi-valued string (REG_MULTI_SZ) registry values are recognised under +HKLM\SYSTEM\CurrentControlSet\Services\\Parameters. + +AppEnvironment defines a list of environment variables which will override +the service's environment. AppEnvironmentExtra defines a list of +environment variables which will be added to the service's environment. + +Each entry in the list should be of the form KEY=VALUE. It is possible to +omit the VALUE but the = symbol is mandatory. + +srvany only supports AppEnvironment. + + +Managing services using the GUI +------------------------------- +NSSM can edit the settings of existing services with the same GUI that is +used to install them. Run + + nssm edit + +to bring up the GUI. + +NSSM offers limited editing capabilities for services other than those which +run NSSM itself. When NSSM is asked to edit a service which does not have +the App* registry settings described above, the GUI will allow editing only +system settings such as the service display name and description. + + Removing services using the GUI ------------------------------- NSSM can also remove services. Run @@ -254,11 +342,14 @@ To remove the server: Building NSSM from source ------------------------- -NSSM is known to compile with Visual Studio 6, Visual Studio 2005 and Visual -Studio 2008. +NSSM is known to compile with Visual Studio 2008. Older Visual Studio +releases may or may not work. NSSM will also compile with Visual Studio 2010 but the resulting executable -will not run on versions of Windows older than XP SP2. +will not run on versions of Windows older than XP SP2. If you require +compatiblity with older Windows releases you should change the Platform +Toolset to v90 in the General section of the project's Configuration +Properties. Credits @@ -282,6 +373,10 @@ Thanks to Riccardo Gusmeroli for Italian translation. Thanks to Eric Cheldelin for the inspiration to generate a Control-C event on shutdown. Thanks to Brian Baxter for suggesting how to escape quotes from the command prompt. +Thanks to Russ Holmann for suggesting that the shutdown timeout be configurable. +Thanks to Paul Spause for spotting a bug with default registry entries. +Thanks to BUGHUNTER for spotting more GUI bugs. +Thanks to Doug Watson for suggesting file rotation. Licence -------