检查进程状态并在无响应/停止时重启进程 - Python
我正在尝试在Windows Server 2008上创建一个小的进程监控脚本。
这个脚本的功能是:
- 找到目标进程
- 检查进程状态(运行中/无响应/已停止)
- 如果进程无响应或已停止,就结束它并重新启动
有没有什么好的建议来实现这个功能?
1 个回答
1
把一个进程称为“无响应”其实是个主观的说法。这个进程可能在等数据,所以看起来没有反应,或者它可能在一个(无尽的)循环中,也让人觉得没有反应。
通常,人们会实现一种叫做心跳的机制。简单来说,就是在进程里放一个非常小的服务器,其他进程可以连接上去,发送ping
消息,进程会回复pong
。监控工具通常会定期给这个进程发送ping消息,如果它在规定时间内没有回应,就会被认为是无响应(通常会被强制关闭)。