首页 > 解决方案 > 定期检查 python 脚本是否正在运行并在没有运行时重新启动它的服务

问题描述

我有一个应该不间断运行的 python 程序。如果发生错误,我想要一个定期(例如每小时)检查程序是否正在运行的服务,如果不是,它会重新启动它。

我正在研究树莓派。

我试过像这样使用bash:

#!/bin/bash
n=1
while [ $n -le 2 ]
do
    PID=$(pidof -s python3);
    if [ -z $PID ]; then
        /usr/bin/python3.5 ~/.../main.py
        exit 0;
    fi
    sleep 1h
done

我只是寻找 python3,因为它是唯一将运行的 python3 程序。

但是它在同一个终端窗口中启动程序,我希望它在不同的窗口中运行,因为似乎否则这两个程序会干扰?

标签: pythonbashraspberry-pi

解决方案


如果这意味着永久运行(而不是一次性任务),那么这不是正确的方法。您应该考虑安装适当的过程控制系统。

周围有一些,但鉴于 systemd 随附大多数 Linux 发行版,包括特定于 Raspberry Pi 的发行版,并且Raspberry Pi 文档中提供了说明,这将是我的首选。


推荐阅读