Allocate a new console for stdin.
[nssm.git] / README.txt
index ded8b7a..aa1fc9f 100644 (file)
@@ -288,13 +288,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 +347,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