X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=README.txt;h=3a31833a4dd8f85077c866635386ce4e3d90372e;hb=d7e54c66881e0d5be029127a675ced3a92fedf9c;hp=ecc59e0c6a16052cccab3201f8021e41f4d9affd;hpb=51452838ad1396e2034313601010f68422faa1ac;p=nssm.git diff --git a/README.txt b/README.txt index ecc59e0..3a31833 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ NSSM: The Non-Sucking Service Manager -Version 2.6, 2010-11-19 +Version 2.15, 2012-07-19 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 @@ -9,7 +9,7 @@ NSSM also has a graphical service installer and remover. Full documentation can be found online at - http://iain.cx/src/nssm/ + http://nssm.cc/ Since version 2.0, the GUI can be bypassed by entering all appropriate options on the command line. @@ -24,6 +24,17 @@ Since version 2.3, NSSM logs to the Windows event log more elegantly. Since version 2.5, NSSM respects environment variables in its parameters. +Since version 2.8, NSSM tries harder to shut down the managed application +gracefully and throttles restart attempts if the application doesn't run +for a minimum amount of time. + +Since version 2.11, NSSM respects srvany's AppEnvironment parameter. + +Since version 2.13, NSSM is translated into French. +Thanks François-Régis Tardy. + +Since version 2.15, NSSM is translated into Italian. +Thanks Riccardo Gusmeroli. Usage ----- @@ -68,8 +79,21 @@ action if/when the application dies. 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. +keep trying, pausing between each attempt, until the service is successfully +started or you send it a stop signal. + +NSSM will pause an increasingly longer time between subsequent restart attempts +if the service fails to start in a timely manner, up to a maximum of four +minutes. This is so it does not consume an excessive amount of CPU time trying +to start a failed application over and over again. If you identify the cause +of the failure and don't want to wait you can use the Windows service console +(where the service will be shown in Paused state) to send a continue signal to +NSSM and it will retry within a few seconds. + +By default, NSSM defines "a timely manner" to be within 1500 milliseconds. +You can change the threshold for the service by setting the number of +milliseconds as a REG_DWORD value in the registry at +HKLM\SYSTEM\CurrentControlSet\Services\\Parameters\AppThrottle. NSSM will look in the registry under HKLM\SYSTEM\CurrentControlSet\Services\\Parameters\AppExit for @@ -152,12 +176,28 @@ Building NSSM from source NSSM is known to compile with Visual Studio 6, Visual Studio 2005 and Visual Studio 2008. +NSSM will also compile with Visual Studio 2010 but the resulting executable +will not run on versions of Windows older than XP SP2. + Credits ------- Thanks to Bernard Loh for finding a bug with service recovery. Thanks to Benjamin Mayrargue (www.softlion.com) for adding 64-bit support. Thanks to Joel Reingold for spotting a command line truncation bug. +Thanks to Arve Knudsen for spotting that child processes of the monitored +application could be left running on service shutdown, and that a missing +registry value for AppDirectory confused NSSM. +Thanks to Peter Wagemans and Laszlo Keresztfalvi for suggesting throttling restarts. +Thanks to Eugene Lifshitz for finding an edge case in CreateProcess() and for +advising how to build messages.mc correctly in paths containing spaces. +Thanks to Rob Sharp for pointing out that NSSM did not respect the +AppEnvironment registry value used by srvany. +Thanks to Szymon Nowak for help with Windows 2000 compatibility. +Thanks to François-Régis Tardy for French translation. +Thanks to Emilio Frini for spotting that French was inadvertently set as +the default language when the user's display language was not translated. +Thanks to Riccardo Gusmeroli for Italian translation. Licence -------