centos 我如何保持我的python-daemon进程运行或在失败时重新启动它?

zbq4xfa0  于 2022-11-07  发布在  Python
关注(0)|答案(2)|浏览(160)

我有一个python3.9脚本,我希望让它全天候运行。在这个脚本中,我使用python-daemon来保持它的运行,如下所示:

import daemon

with daemon.DaemonContext():
   %%script%%

它运行正常,但是几小时或几天后,它就会随机崩溃。我总是用sudo启动它,但是我似乎找不到哪里可以找到守护进程的日志文件来进行调试。我该怎么做才能确保日志记录?我该如何保持脚本运行或在崩溃后自动重启它?
您可以找到完整的代码here

vdzxcuhz

vdzxcuhz1#

如果您真的想在后台24/7运行脚本,那么最简洁、最简单的方法肯定是创建systemd服务。
已经有很多关于如何做到这一点的描述,例如here
systemd的优点之一是,除了能够在启动时启动服务之外,还能够在出现故障后重新启动服务。

Restart=on-failure

如果您只想在崩溃后自动重新启动程序,最简单的方法可能是使用bash脚本。
您可以使用until loop,只要给定条件的计算结果为false,就可以使用它来执行给定的命令集。


# !/bin/bash

until python /path/to/script.py; do
    echo "The program crashed at `date +%H:%M:%S`. Restarting the script..."
done

如果命令返回非零exit-status,则重新启动脚本。

yxyvkwin

yxyvkwin2#

我将从熟悉这两个问题开始:

看起来你需要一个监督员来确保你的脚本/守护进程仍然在运行。你可以看看supervisord

相关问题