Really get canonical name in open_service().
[nssm.git] / README.txt
index ded8b7a..df12238 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
@@ -486,6 +516,13 @@ invocation is valid and will have the expected effect.
 \r
     nssm set <servicename> ObjectName <username> correct horse battery staple\r
 \r
+The following well-known usernames do not need a password.  The password\r
+parameter can be omitted when using them:\r
+\r
+  "LocalSystem" aka "System" aka "NT Authority\System"\r
+  "LocalService" aka "Local Service" aka "NT Authority\Local Service"\r
+  "NetworkService" aka "Network Service" aka "NT Authority\Network Service"\r
+\r
 \r
 The Start parameter is used to query or set the startup type of the service.\r
 Valid service startup types are as follows:\r
@@ -618,7 +655,7 @@ Thanks to Szymon Nowak for help with Windows 2000 compatibility.
 Thanks to François-Régis Tardy for French translation.\r
 Thanks to Emilio Frini for spotting that French was inadvertently set as\r
 the default language when the user's display language was not translated.\r
-Thanks to Riccardo Gusmeroli for Italian translation.\r
+Thanks to Riccardo Gusmeroli and Marco Certelli for Italian translation.\r
 Thanks to Eric Cheldelin for the inspiration to generate a Control-C event\r
 on shutdown.\r
 Thanks to Brian Baxter for suggesting how to escape quotes from the command\r
@@ -633,6 +670,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