0

我编写了一个 PYTHON 脚本来控制我家的供暖和空调系统。它通过 MYSQL 数据库获取信息和设置,并通过 USB/Serial 通信与外界通信。它只是在运行一个无限循环,检查温度等。目前在带有 Arch Linux 的 Raspberry PI 上运行。因为它对我家人的舒适至关重要,所以我希望它相当可靠,并从关机中优雅地恢复。我可以在控制台上启动它,并且最新的版本还没有在我身上崩溃,所以它看起来很稳定。我的问题:让我自动启动它的简单方法是什么?如何自动检查它是否正在运行,如果它崩溃了,再次启动它?

我怀疑答案可能与 Cron 相关,或者可能与它的守护进程有关,但我不是 OO 程序员,所以目前这些似乎有点令人生畏。

4

3 回答 3

1

设置一个 cronjob 每隔 5 分钟左右运行一次,以监控任务是否正在运行。

这是一个可行的例子,在 bash

# assuming your app is called temp_monitor.py

cmd="ps ux | grep temp_monitor.py | grep -v grep"
start="python temp_monitor.py"

# run the command to check
eval "$cmd"

# did the previous command return a non-zero exit code?
if [ $? -ne 0 ]; then
  $start
fi
于 2013-11-12T17:54:46.243 回答
0

Python 程序员最自然的解决方案是supervisord。现在可能大多数*nix 系统都提供了OOTB(即作为一个包),有些实际上将它用作他们平台的一部分。

于 2013-11-12T17:55:38.097 回答
0

在 cron 中,添加一个“定期”运行的作业,以确保您的应用程序正在运行(一些种类,ps并且grep会给你)

其次,将启动程序的脚本添加到/etc/init.d系统启动时读取的目录中。(注意:我不记得在 rasp/pi 上运行的 linux 版本的确切目录,我将把它留作 OP 的练习)

少量侦查指向自动启动功能的此解决方案

于 2013-11-12T17:52:45.743 回答