允許螢幕中的進程自行重新啟動

允許螢幕中的進程自行重新啟動

系統是 Debian Wheyy 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

在螢幕中啟動腳本。

相關內容