Enable on-demand rotation.
[nssm.git] / README.txt
index 685807a..0affeb3 100644 (file)
@@ -56,6 +56,9 @@ AppEnvironment.
 Since version 2.22, NSSM can set the managed application's process priority\r
 and CPU affinity.\r
 \r
+Since version 2.22, NSSM can apply an unconditional delay before restarting\r
+an application which has exited.\r
+\r
 Since version 2.22, NSSM can rotate existing output files when redirecting I/O.\r
 \r
 Since version 2.22, NSSM can set service display name, description, startup\r
@@ -129,6 +132,17 @@ You can change the threshold for the service by setting the number of
 milliseconds as a REG_DWORD value in the registry at\r
 HKLM\SYSTEM\CurrentControlSet\Services\<service>\Parameters\AppThrottle.\r
 \r
+Alternatively, NSSM can pause for a configurable amount of time before\r
+attempting to restart the application even if it successfully ran for the\r
+amount of time specified by AppThrottle.  NSSM will consult the REG_DWORD value\r
+at HKLM\SYSTEM\CurrentControlSet\Services\<service>\Parameters\AppRestartDelay\r
+for the number of milliseconds to wait before attempting a restart.  If\r
+AppRestartDelay is set and the application is determined to be subject to\r
+throttling, NSSM will pause the service for whichever is longer of the\r
+configured restart delay and the calculated throttle period.\r
+\r
+If AppRestartDelay is missing or invalid, only throttling will be applied.\r
+\r
 NSSM will look in the registry under\r
 HKLM\SYSTEM\CurrentControlSet\Services\<service>\Parameters\AppExit for\r
 string (REG_EXPAND_SZ) values corresponding to the exit code of the application.\r
@@ -300,6 +314,25 @@ Rotation is independent of the CreateFile() parameters used to open the files.
 They will be rotated regardless of whether NSSM would otherwise have appended\r
 or replaced them.\r
 \r
+NSSM can also rotate files which hit the configured size threshold while the\r
+service is running.  Additionally, you can trigger an on-demand rotation by\r
+running the command\r
+\r
+    nssm rotate <servicename>\r
+\r
+On-demand rotations will happen after the next line of data is read from\r
+the managed application, regardless of the value of AppRotateBytes. Be aware\r
+that if the application is not particularly verbose the rotation may not\r
+happen for some time.\r
+\r
+To enable online and on-demand rotation, set AppRotateOnline to a non-zero\r
+value.\r
+\r
+Note that online rotation requires NSSM to intercept the application's I/O\r
+and create the output files on its behalf.  This is more complex and\r
+error-prone than simply redirecting the I/O streams before launching the\r
+application.  Therefore online rotation is not enabled by default.\r
+\r
 \r
 Environment variables\r
 ---------------------\r
@@ -588,6 +621,7 @@ Thanks to Doug Watson for suggesting file rotation.
 Thanks to Арслан Сайдуганов for suggesting setting process priority.\r
 Thanks to Robert Middleton for suggestion and draft implementation of process\r
 affinity support.\r
+Thanks to Andrew RedzMax for suggesting an unconditional restart delay.\r
 \r
 Licence\r
 -------\r