Fixed argument parsing for setting ObjectName.
[nssm.git] / README.txt
index ded8b7a..de01aa4 100644 (file)
@@ -262,6 +262,17 @@ so the actual time to shutdown may be longer than the sum of all configured
 timeouts if the application spawns multiple subprocesses.\r
 \r
 \r
+Console window\r
+--------------\r
+By default, NSSM will create a console window so that applications which\r
+are capable of reading user input can do so - subject to the service being\r
+allowed to interact with the desktop.\r
+\r
+Creation of the console can be suppressed by setting the integer (REG_DWORD)\r
+HKLM\SYSTEM\CurrentControlSet\Services\<service>\Parameters\AppNoConsole\r
+registry value to 1.\r
+\r
+\r
 I/O redirection\r
 ---------------\r
 NSSM can redirect the managed application's I/O to any path capable of being\r
@@ -288,13 +299,6 @@ AppStderr to the same path, eg C:\Users\Public\service.log, and it should
 work.  Remember, however, that the path must be accessible to the user\r
 running the service.\r
 \r
-Note that if you set AppStdout and/or AppStderr, applications which attempt\r
-to read stdin will fail due to a combination of factors including the way I/O\r
-redirection is configured on Windows and how a console application starts in\r
-a service context.  NSSM can fake a stdin stream so that applications can\r
-still work when they would otherwise exit when at end of file on stdin.  Set\r
-AppStdin to "|" (a single pipe character) to invoke the fake stdin.\r
-\r
 \r
 File rotation\r
 -------------\r
@@ -354,7 +358,33 @@ 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\r
 omit the VALUE but the = symbol is mandatory.\r
 \r
-srvany only supports AppEnvironment.\r
+Environment variables listed in both AppEnvironment and AppEnvironmentExtra\r
+are subject to normal expansion, so it is possible, for example, to update the\r
+system path by setting "PATH=C:\bin;%PATH%" in AppEnvironmentExtra.  Variables\r
+are expanded in the order in which they appear, so if you want to include the\r
+value of one variable in another variable you should declare the dependency\r
+first.\r
+\r
+Because variables defined in AppEnvironment override the existing\r
+environment it is not possible to refer to any variables which were previously\r
+defined.\r
+\r
+For example, the following AppEnvironment block:\r
+\r
+      PATH=C:\Windows\System32;C:\Windows\r
+      PATH=C:\bin;%PATH%\r
+\r
+Would result in a PATH of "C:\bin;C:\Windows\System32;C:\Windows" as expected.\r
+\r
+Whereas the following AppEnvironment block:\r
+\r
+      PATH=C:\bin;%PATH%\r
+\r
+Would result in a path containing only C:\bin and probably cause the\r
+application to fail to start.\r
+\r
+Most people will want to use AppEnvironmentExtra exclusively.  srvany only\r
+supports AppEnvironment.\r
 \r
 \r
 Managing services using the GUI\r
@@ -633,6 +663,7 @@ affinity support.
 Thanks to Andrew RedzMax for suggesting an unconditional restart delay.\r
 Thanks to Bryan Senseman for noticing that applications with redirected stdout\r
 and/or stderr which attempt to read from stdin would fail.\r
+Thanks to Czenda Czendov for help with Visual Studio 2013 and Server 2012R2.\r
 \r
 Licence\r
 -------\r