2017-08-05 91 views
0

我想創建一個運行java與jar的Windows服務。廚師窗戶安裝java服務不工作

資源創建的服務是:

service_name="Service" 
service_file="C:\\chef_solo\\utils\\service-17.jar" 
java_exe="#{java_home_win}\\bin\\java.exe" 
binPath="#{java_exe} -jar #{service_file} " 

execute "Installing #{service_name}" do 
    command "sc create \"#{service_name}\" binPath= \"#{binPath}\" obj= \".\\#{gst_user}\" password= \"#{gst_pwd}\" start= auto displayname= \"GS Translation Service\"" 
    action :nothing 
end 

創建服務,但在運行時,我得到一個錯誤消息說:

Windows could not start the Service service on 192.168.0.10. Error 1053: The service did not respond to the start or control request in a timely fashion. 

而且我想,這是因爲當我手工運行它,大約需要45秒,直到服務啓動並且端口打開。 我該如何讓它等待?還是有另一個我不明白的問題?

謝謝。

加布裏埃爾

回答

0

的解決方案是在Microsoft's support site

服務啓動時,該服務的服務控制管理器通信的服務必須有多久開始(對於超時週期服務)。如果服務控制管理器在此超時期限內沒有收到來自該服務的「服務啓動」通知,則服務控制管理器將終止承載該服務的進程。

此超時期間通常小於30秒。如果您不調整此超時期限,則服務控制管理器會在嘗試調試時結束進程和附加的調試程序。

要調整此超時時間,請按照下列步驟操作:

在註冊表編輯器,定位,然後用鼠標右鍵單擊下面的註冊表子項:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control 

指向,和然後點擊DWORD值

在註冊表編輯器的右窗格中,請注意新值#1(新註冊表項的名稱)被選中進行編輯。

類型ServicesPipeTimeout要替換新值#1,然後按ENTER鍵。

右鍵單擊您在步驟c中創建的ServicesPipeTimeout註冊表項,然後單擊修改。出現編輯DWORD值對話框。

數值數據文本框中,鍵入TimeoutPeriod,然後單擊 確定

注:TimeoutPeriod是超時週期值的佔位符(以毫秒爲單位),您想要爲服務設置。例如,如果要將超時期限設置爲24小時(86400000毫秒),請鍵入86400000。

重新啓動計算機。您必須重新啓動計算機以便Service Control Manager應用此更改。