2

我正在尝试制作一个批处理文件来创建我的服务,并为如何准确列出每个参数而苦苦挣扎。我对此进行了很多研究,但似乎找不到正确的语法。这就是我现在拥有的:

nssm install MDHIS_WebClient "%MDHIS2_HOME%/MDHIS_WebClient.cmd" AppDirectory %MDHIS2_HOME% DisplayName MDHIS_WebClient Start SERVICE_AUTO_START DependOnService MSSQLSERVER AppNoConsole 1 AppStopMethodConsole 30000

这有效,但参数被忽略。谁能给我看一个正确语法的例子?

4

2 回答 2

9

您现在使用的命令最终将在AppDirectory程序执行时将程序路径之后的所有项目(以 开头)作为参数传递给程序。显然这不是你想要的行为。

要建立对您有意义的参数,必须为每个参数nssm运行单独的命令。nssm set在这种情况下,您将使用此命令来创建服务并定义程序的路径:

  nssm install MDHIS_WebClient "%MDHIS2_HOME%/MDHIS_WebClient.cmd"

接下来是这一系列命令建立各种参数:

  nssm set MDHIS_WebClient AppDirectory %MDHIS2_HOME%

  nssm set MDHIS_WebClient DisplayName MDHIS_WebClient 

  nssm set MDHIS_WebClient Start SERVICE_AUTO_START 

  nssm set MDHIS_WebClient DependOnService MSSQLSERVER 

  nssm set MDHIS_WebClient AppNoConsole 1 

  nssm set MDHIS_WebClient AppStopMethodConsole 30000

为了安全起见,我会将Start参数移到该系列的末尾,以防止在剩余参数(和)建立nssm之前启动服务的可能性。DependOnServiceAppNoConsoleAppStopMethodConsole

于 2018-11-08T03:19:16.867 回答
0

另一种方法....我将 nssm.exe 设置为以管理员身份运行。现在它在我的批次的每个集合调用中提示输入管理员。但至少它不需要快捷方式或其他方式来打开管理控制台。我知道这不好,但它更简单。

于 2020-04-21T21:25:51.987 回答