【问题标题】:Check service is running with procrun使用 procrun 检查服务是否正在运行
【发布时间】:2012-05-28 13:58:45
【问题描述】:

我正在使用prunsrv 创建 Windows 服务。我想问你是否可以查询一个进程的状态(如果它正在运行,是否已停止)或者一个进程是否存在。我也想用Java程序读取pid文件的内容。

【问题讨论】:

    标签: java procrun


    【解决方案1】:

    是的,有一个技巧:在服务的启动代码中创建一个本地套接字。如果您在创建套接字时遇到错误,您将知道该服务的实例已经在运行。

    如果要检查服务是否处于活动状态,可以连接到套接字。如果失败,则该过程不存在。

    你可以通过这个套接字返回服务的 PID,所以“监控”程序不需要知道日志路径和 PID 文件名。如果你实现了启动/停止方法,你甚至可以告诉监视器你的服务的状态。

    这样做的最大好处是,当您的服务因任何原因终止时,操作系统会确保关闭套接字。第二个优点是它独立于操作系统工作 - 如果您需要将其移至 Linux 或 Mac,则无需更改代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-04
      • 2021-08-15
      • 2015-06-26
      • 2011-05-25
      • 1970-01-01
      • 2011-01-20
      • 2018-08-13
      • 2012-04-30
      相关资源
      最近更新 更多