2017-08-05 4 views
0

jarを使ってjavaを実行している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(新しいレジストリエントリの名前)が編集用に選択されていることに注目してください。 新しい値#1を交換し、Enterキーを押しする

タイプにServicesPipeTimeout

は、手順cで作成したにServicesPipeTimeoutレジストリエントリを右クリックし、[変更をクリックします。 DWORD値の編集ダイアログボックスが表示されます。 値のデータテキストボックス、タイプTimeoutPeriod、[OK]をクリックしますで

OK

注:TimeoutPeriodは(ミリ秒)のタイムアウト時間の値のプレースホルダであることをサービスのために設定したい。たとえば、タイムアウト期間を24時間(86400000ミリ秒)に設定する場合は、86400000と入力します。

コンピュータを再起動します。この変更を適用するには、Service Control Managerのコンピュータを再起動する必要があります。

関連する問題