2013-08-17 91 views
2

我正在使用Windows的廚師,並且需要運行一個批處理文件來啓動selenium-server java服務(java -jar seleniumserver.jar)作爲守護程序。當我嘗試使用windows_batch資源時,會導致廚師在配置過程中掛起。使用廚師運行Windows批處理命令會阻止廚師提供

問題是,硒服務器保持運行在您啓動它的任何命令行中,但廚師將不會繼續配置機器,直到命令完成。事情是,命令永遠不會結束,它不應該。

這裏是我試過到目前爲止:

  • 執行Java的罐子seleniumserver.jar &(與windows_batch資源)
  • 使用模板來創建命令的批處理文件,然後使用windows_batch執行file.bat
  • 使用windows_batch與執行批處理文件的&(file.bat &)

我很樂意接受任何想法,即使它是一種黑客行爲。提前致謝!

+0

同樣的問題......任何運氣?我已經嘗試了'start/b'和包裝腳本與'execute'的每個組合。沒有任何作品 - 這對廚師的使用來說是一個巨大的負面影響。 –

+0

我從來沒有能夠得到這個工作。我最終做的是創建批處理腳本並將其放入啓動文件夾,然後重新啓動計算機。非常低效,但它的工作原理。 – Noah

回答

1

如果我正確理解問題,則可以啓動一個單獨的進程,以便主批處理文件結束。例如:

start java -jar seleniumserver.jar 

您可以通過不同的start選項控制多個執行參數。

結束命令行&與* nix的作用不同。

下面上不阻擋廚師運行

批次「運行」做 代碼「的powershell -c‘啓動過程Notepad.exe的’」 端窗口

+0

好主意,但它仍然沒有工作:( – Noah

0

異步過程是示例使用start-process啓動帶參數的命令。

嘗試在命令提示符中單獨運行命令以熟悉其輸出。

net statistics server 

現在在命令提示符下使用powershell和start-process運行它,並驗證c:\ output.txt中顯示的正確輸出。請注意使用單引號或雙引號。我的經驗表明,出於某種原因,啓動過程不適用雙引號。

powershell -c start-process net -ArgumentList 'statistics workstation' -RedirectStandardOutput c:\output.txt 

現在把以下內容放在廚師執行資源並運行它。再次,請注意單引號,雙引號和單引號。

execute "run" do 
    command 'powershell -c "start-process net -ArgumentList \'statistics workstation\' -RedirectStandardOutput c:\chef-output.txt"' 
end 

您應該在c:\ chef-output.txt中找到正確的輸出。