NSSM - 从带有许多参数的命令行安装服务

NSSM - Install service from command line with many arguments

我正在尝试创建一个批处理文件来创建我的服务,但我正在努力解决如何准确列出每个参数的问题。我对此进行了大量研究,但似乎找不到正确的语法。这就是我现在拥有的:

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

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

您现在使用的命令将在执行时将程序路径后的所有项目(以 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 在其余参数 (DependOnService 之前启动服务的可能性, AppNoConsoleAppStopMethodConsole) 已成立。

另一种方法....我将 nssm.exe 设置为 运行 作为管理员。现在它会在我的批次中的每个设置调用中提示 adminn。但至少它不需要快捷方式或不同的方式来打开管理控制台。我知道这不是很好,但它更简单。