允许屏幕中的进程自行重启

允许屏幕中的进程自行重启

系统是 Debian Whezy x64。我目前使用 screen 以用户身份而不是 root 身份启动程序。它看起来像这样:在 /etc/rc.local 中,我调用

su -c "/home/user/scripts/startup" user

然后,在 /home/user/scripts/startup 中,我调用几个这样的 python 程序:

screen -dmS my_program python /home/user/my_program.py 

它们都启动正常。问题是这些程序往往每周左右都会自我更新。当程序更新时,它会尝试重新启动。程序重新启动后,屏幕会话终止,程序不会再次启动。因此,几天后,我注意到程序无法正常工作,需要手动重新启动它。

我可以做些什么来确保程序重新启动后能够自行启动吗?

编辑:我读过一些关于屏幕的“僵尸模式”的内容,它可以让它保持活动状态,但我不知道如何在启动时调用它。

谢谢

答案1

创建一个无限循环运行的脚本并观察该程序的运行情况。

#!/bin/bash
while true; do ps aux | grep -v grep | grep -q <program> || <start_program>; sleep 5; done

在屏幕上启动脚本。

相关内容