【问题标题】:chef windows installed java service not working厨师windows安装java服务不工作
【发布时间】:2017-08-06 04:05:43
【问题描述】:

我正在尝试创建一个使用 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 秒才能启动服务并打开端口。 我怎样才能让它等待?或者还有什么我不明白的问题?

谢谢。

加布里埃尔

【问题讨论】:

    标签: java windows chef-infra


    【解决方案1】:

    解决方案在Microsoft's support site

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

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

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

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

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    

    指向新建,然后单击DWORD 值

    在注册表编辑器的右窗格中,请注意 New Value #1(新注册表项的名称)已被选中进行编辑。

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

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

    数值数据文本框中,输入TimeoutPeriod,然后点击 好的

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多