python - 如果进程挂起/崩溃,如何重新启动 python 脚本

标签 python linux

我有简单的Python代码,它使用2个进程,一个是主进程,另一个是由多处理模块创建的。两个进程都在无限循环中运行。我希望我的 python 代码永远不会崩溃/挂起/卡住。我已经处理了大部分错误/异常。仅供引用,它是一个 IOT 项目,我正在/etc/rc.local 路径中作为启动器运行此代码。我尝试使用 python 中的 pid 模块,如给定 here

根据给定的链接,pid 模块的工作原理如下。

从 pid 导入 PidFile

与 PidFile(): do_something()

我的问题是,上述逻辑是否满足我的要求,或者我是否需要添加更多逻辑,例如检查 pid 文件是否存在,然后在两个进程中的任何一个由于代码错误而卡住时决定终止/停止/重新启动进程(或代码本身)。

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

最佳答案

您好,我通过为这两个任务创建单独的 python 脚本而不是使用队列等多处理模块解决了这个问题。我建议不要在无限循环内使用多处理队列,因为它会在一段时间后卡住进程。

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

相关文章:

python - 在 python 中获取 os.system 的输出并在之后处理它

python - 列表中列表的随机播放功能

linux - 如何使用awk检查文本文件中的行是否存在于另一个文本文件中

android - obexftp -l 失败,返回代码 81

PHP - 验证程序是否正在运行

php - 调试 PHP 的段错误

python - 格式化输出的缩短代码

python - PyQt4 和 64 位 python

python - 如何从 Python 脚本捕获 Python 解释器和/或 CMD.EXE 输出?

c - 如何在 linux 上将两个虚拟地址映射到同一物理内存上?