2

我正在尝试使用 NSSM 和 powershell 将 Selenium 安装为服务。但是在创建服务时没有设置正确的参数。

在 CMD 中运行的相同命令成功执行并按预期安装服务。

如何使用 Powershell 将设置传递到 NSSM?我正在使用的命令是:

nssm install SeleniumHub java -jar C:\bin\Selenium2\selenium-server-standalone-2.53.0.jar -role hub -hubConfig C:\bin\Selenium2\seleniumHubConfig.json

NSSM 在我的 PATH 上,因此 powershell 可以正确找到 NSSM 可执行文件,但它似乎不像 CMD 那样处理参数

4

2 回答 2

2

如果它在 CMD 中工作,为什么不将它作为 cmd 命令传递:)

cmd /c "nssm install SeleniumHub java -jar C:\bin\Selenium2\selenium-server-standalone-2.53.0.jar -role hub -hubConfig C:\bin\Selenium2\seleniumHubConfig.json"
于 2016-03-23T10:42:21.260 回答
1

你是对的——PowerShell 不处理与 CMD 相同的参数。这里的问题是某些 NSSM 参数(例如-role-hub)看起来像 PowerShell 参数,因此 PowerShell 试图解释它们,而不是将它们传递给 NSSM。

将这些参数括在引号中会有所帮助,但我发现使用参数调用命令的最佳方法是将它们捆绑为一个数组,并使用调用运算符&

$params = @('install', 'SeleniumHub', 'java', '-jar',
            'C:\bin\Selenium2\selenium-server-standalone-2.53.0.jar',
            '-role', 'hub', '-hubConfig',
            'C:\bin\Selenium2\seleniumHubConfig.json')
& nssm $params
于 2016-03-23T13:16:10.757 回答