繁体   English   中英

Chef Windows安装的Java服务无法正常工作

[英]chef windows installed java service not working

我正在尝试创建一个运行带有jar的java的Windows服务。

创建服务的资源是:

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秒钟。 我该如何等待? 还是还有我不明白的另一个问题?

谢谢。

加布里埃尔

该解决方案位于Microsoft的支持站点上

服务启动时,该服务会与服务控制管理器进行通信,该服务必须必须启动多长时间(该服务的超时时间)。 如果服务控制管理器在此超时时间内未收到来自服务的“服务已启动”通知,则服务控制管理器将终止承载该服务的进程。

该超时时间通常少于30秒。 如果您不调整此超时期限,则服务控制管理器将在尝试调试时结束该进程和附加的调试器。

若要调整此超时期限,请按照下列步骤操作:

在注册表编辑器中,找到,然后右键单击以下注册表子项:

 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control 

指向“ 新建” ,然后单击“ DWORD值”

在注册表编辑器的右窗格中,请注意已选择要编辑的新值1 (新注册表项的名称)。

键入ServicesPipeTimeout以替换New Value#1 ,然后按Enter。

用鼠标右键单击您在步骤c中创建的ServicesPipeTimeout注册表项,然后单击修改 出现“ 编辑DWORD值”对话框。

在“ 数值数据”文本框中,键入TimeoutPeriod ,然后单击“确定”。

注意: TimeoutPeriod是占位符,表示要为服务设置的超时时间(以毫秒为单位)。 例如,如果要将超时期限设置为24小时(86400000毫秒),请键入86400000。

重新启动计算机。 您必须重新启动计算机,服务控制管理器才能应用此更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM