自动启动PYTHON脚本

2024-05-23 13:43:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个PYTHON脚本来控制我家的暖气和空调系统。它通过MYSQL数据库获取信息和设置,并通过USB/串行通信与外界进行通信。它只是运行一个无休止的循环,检查温度等等。 目前运行在一个带有ArchLinux的Raspberry PI上。 因为这对我的家人来说是非常重要的,我希望它是相当可靠的,并优雅地从关闭回来。 我可以在控制台上启动它,而最新版本还没有崩溃,所以它看起来相当稳定。 我的问题:对于我来说,让它自动启动的简单方法是什么? 我怎么能自动检查它是否在运行,如果它崩溃了,再启动它?在

我怀疑答案可能与Cron有关,也可能与daemoning有关,但我不是OO程序员,所以目前这些似乎有点让人望而生畏。在


Tags: 方法版本脚本数据库系统mysqlpi家人
3条回答

Python程序员最自然的解决方案是supervisord。也许现在大多数*nix系统都提供了OOTB(例如,作为一个包),有些实际上把它作为平台的一部分。在

在cron中,添加一个“定期”运行的作业,以确保应用程序正在运行(某种类型的psgrep将为您提供这些功能)

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

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

将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

相关问题 更多 >