スクリーン内のプロセスが再起動できるようにする

スクリーン内のプロセスが再起動できるようにする

システムはDebian Whezy x64です。現在、rootではなくユーザーとしてプログラムを起動するためにscreenを使用しています。次のようになります。/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

画面でスクリプトを開始します。

関連情報