python - 定期检查 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 程序。
但是它在同一个终端窗口中启动程序,我希望它在不同的窗口中运行,因为似乎否则这两个程序会干扰?
解决方案
如果这意味着永久运行(而不是一次性任务),那么这不是正确的方法。您应该考虑安装适当的过程控制系统。
周围有一些,但鉴于 systemd 随附大多数 Linux 发行版,包括特定于 Raspberry Pi 的发行版,并且Raspberry Pi 文档中提供了说明,这将是我的首选。
推荐阅读
- emacs - 禁用行号,但允许它们在 prog-mode 和 text-mode
- reactjs - 无效的挂钩调用,但不是真的
- sql - 日期之间的 SQL 作为对象
- python - 在 Jupyter Notebook 环境中,交互式命令行 shell 在概念上适合应用程序、内核和文档的哪个位置?
- ios - ContextErrorException 注意:未定义的偏移量:1 prestashop 1.7
- android - '找不到“libopvpnutil.so”' OpenVPN android 库
- typescript - 更新 Sequelize 列并附加到 SQLite 上的现有数组
- ios - SwiftUI - 列表:在 iOS 13+ 中隐藏分隔线
- laravel - 如何在 laravel 中停止计算 Vue 组件道具?
- julia - 在 Julia 中使用 for 循环打印范围内的素数