我正在使用prunsrv创建windows服务。我想问您,是否可以查询进程的状态(如果正在运行、已停止),或者是否存在进程。另外,我想用Java程序读取pid文件的内容。
发布于 2012-05-28 22:13:51
是的,有一个技巧:在服务的启动代码中创建一个本地套接字。如果您在创建套接字时出错,您将知道该服务的一个实例已经在运行。
如果要检查服务是否处于活动状态,可以连接到套接字。如果失败了,那么这个过程就不存在了。
您可以通过这个套接字返回服务的PID,这样"monitor“程序就不需要知道日志路径和PID文件名了。如果你实现了start/stop方法,你甚至可以告诉监视器你的服务的状态。
这样做的最大好处是,当您的服务因任何原因终止时,操作系统将确保套接字关闭。第二个优点是它独立于操作系统工作--如果你需要把它移到Linux或Mac上,不需要修改代码。
https://stackoverflow.com/questions/10785866
复制相似问题