我正在使用厨师用于Windows,需要运行批处理文件,启动selenium-server java服务(java -jar seleniumserver.jar)作为守护进程。当我尝试使用windows_batch资源时,它会导致厨师在配置期间挂起。
问题是selenium服务器在你启动它的任何命令行中都会继续运行,但是在命令完成之前,chef不会继续配置机器。事情是,命令永远不会完成,它不应该。
这是我到目前为止所尝试的内容:
我对任何想法持开放态度,即使它有点像hacky。提前致谢!
答案 0 :(得分:1)
如果我正确理解了问题,您可以启动一个单独的进程,以便主批处理文件结束。例如:
start java -jar seleniumserver.jar
您可以通过不同的start
选项控制多个执行参数。
使用&
的结尾命令行与* nix不同。
答案 1 :(得分:0)
窗口上的异步处理不会阻止主厨运行
批量“运行”做 代码'powershell -c“启动进程notepad.exe”' 端
以下是使用start-process启动带参数的命令的示例。
尝试在命令提示符中单独运行命令,以熟悉其输出。
net statistics server
现在在命令提示符下使用powershell和start-process运行它,并验证c:\ output.txt中是否显示正确的输出。请注意使用单引号或双引号。我的经验表明,由于某些原因,启动过程不适用于双引号。
powershell -c start-process net -ArgumentList 'statistics workstation' -RedirectStandardOutput c:\output.txt
现在将以下内容放在Chef执行资源中并运行它。再次,请注意单引号,双引号和转义单引号。
execute "run" do
command 'powershell -c "start-process net -ArgumentList \'statistics workstation\' -RedirectStandardOutput c:\chef-output.txt"'
end
您应该在c:\ chef-output.txt中找到正确的输出。