Python 最佳实践:监控流程
我想知道什么样的最佳实践解决方案可以持续监控和重新启动流程,因为有多种方法可以做到这一点 其他信息: 我有一个unix程序,它使用多个进程来工作。有一个主进程,它总是先启动,不停止程序就不可能死亡或终止 然后我生成了多个“模块”流程,它们负责一些工作,并通过主流程进行通信。这些模块有时会因为异常而死亡,因为它是一个外部程序,我无法解决问题,所以如果它们死亡,我必须重新启动它们 我制作了一个程序来检查是否有任何模块死机并重新启动它们,但我需要手动运行它。我的程序检查模块的pid文件是否存在,以及它们是否在特定的tcp端口上侦听。如果pid文件不存在或套接字无法建立连接,则会重新启动模块 到目前为止,我的想法是:Python 最佳实践:监控流程,python,python-2.7,Python,Python 2.7,我想知道什么样的最佳实践解决方案可以持续监控和重新启动流程,因为有多种方法可以做到这一点 其他信息: 我有一个unix程序,它使用多个进程来工作。有一个主进程,它总是先启动,不停止程序就不可能死亡或终止 然后我生成了多个“模块”流程,它们负责一些工作,并通过主流程进行通信。这些模块有时会因为异常而死亡,因为它是一个外部程序,我无法解决问题,所以如果它们死亡,我必须重新启动它们 我制作了一个程序来检查是否有任何模块死机并重新启动它们,但我需要手动运行它。我的程序检查模块的pid文件是否存在,以及它
- Cron作业,每分钟运行一次检查,并重新启动所有死机模块。(有点过分了,因为他们死得不那么频繁)
- 后台运行的守护进程,启动模块并在模块死亡时接收通知,因此不必经常检查它们。(信号,操作系统等待)
另外,如果我忘了什么,或者您需要更多信息,请随时询问。:) 我将调查作为专用监控框架的一部分运行监控流程。这是一个例子,当然还有其他例子 这样做的好处是提供了其他可能有用的功能,如电子邮件警报和分析。根据我的经验,您应该能够在不进行太多修改的情况下使用现有程序,并且如果这是一个问题,那么它本身使用的系统资源也很少。可能的解决方案: