我有简单的python代码,它使用2个进程,一个是主进程,另一个是由多处理模块创建的。这两个过程都以无限循环运行。我希望我的python代码永远不会崩溃/挂起/冻结。我已经处理了大多数错误/异常。仅供参考,这是一个IOT项目,我正在/etc/rc.local路径中以启动器的身份运行此代码。我尝试根据给定的here使用来自python的pid模块

根据给定pid模块的链接,其工作方式如下。

从pid导入PidFile

使用PidFile():
  做点什么()

我的问题是,以上逻辑是否满足我的要求,还是我需要放置一些其他逻辑,例如检查pid文件的存在,然后确定如果两个进程中的任何一个冻结,则终止/停止/重新启动进程(或代码本身)到代码中的任何错误。

如果pid模块不适合我的要求,请建议还有其他方法可以实现此目的。

最佳答案

嗨,我通过为两个任务创建单独的python脚本而不是使用诸如队列之类的多处理模块来解决了此问题。我建议不要在无限循环内使用多处理队列,因为它会在一段时间后冻结一个或多个进程。

关于python - 如果进程挂起/崩溃,如何重启python脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49378667/

10-11 03:25
查看更多