我写了一个PYTHON脚本来控制我家的供暖和交流系统。它通过MYSQL数据库获取信息和设置,并通过USB /串行通信与外界通信。它只是运行无限循环,检查温度等。 目前在Arch Linux上使用Raspberry PI运行。 因为它对我家人的舒适至关重要,所以我希望它相当可靠,并在关机时优雅地回来。 我可以在控制台上启动它,最新版本还没有在我身上崩溃,所以看起来非常稳定。 我的问题:让我自动启动它的简单方法是什么? 如何自动检查它是否正在运行,如果它崩溃了,再次启动它?
我怀疑答案必须与Cron一起进行,或者可能与守护进程,但我不是OO程序员,所以这些看起来有点令人生畏。
答案 0 :(得分: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
答案 1 :(得分:0)
在cron中,添加一个“定期”运行的作业,以确保您的应用程序正在运行(某些ps
和grep
将为您提供)
其次,添加一个脚本以启动程序到/etc/init.d
目录,该目录在启动时由系统读取。 (注意:我不记得在rasp / pi上运行的linux版本的确切目录,我将把它留作OP的练习)
this解决自动启动功能的少量调查点
答案 2 :(得分:0)
Python程序员最自然的解决方案是supervisord。可能大多数* nix系统当天提供OOTB(即作为一个包),有些实际上将它作为其平台的一部分使用。