
Ubuntu 12.04 サーバーで常に実行したい非常にシンプルな Python スクリプトがあります。upstart + monit を使用することを考えました。問題は、これらのツールが私のような単純な人間にとってはかなり複雑に思え、Web 上で簡単な例を見つけることができないことです。
upstart + monit はやりすぎでしょうか? / 誰かもっと簡単な代替手段を知っていますか? / または良いチュートリアルはありますか?
答え1
出典この答え:
monitor.sh
Python スクリプトを起動し、クラッシュした場合は再起動するが、スクリプトが正常に終了した場合は再起動しないbash スクリプトを作成できます。
#!/bin/bash
until myscript.py; do
echo "'myscript.py' crashed with exit code $?. Restarting..." >&2
sleep 1
done
次に、バックグラウンドでモニター スクリプトを開始します。
nohup monitor.sh &
答え2
上記の回答は素晴らしいです。現時点ではコメントできないので、ここで回答を改善する必要があるかもしれません。
「myscript」は Python スクリプトであり、bash 環境で実行されていないため、関数を記述することもできます。
それで、
#!/bin/bash
myscript(){
python3 myscript [args..]
}
until myscript; do
echo "'myscript' crashed with exit code $?. Restarting..." >&2
sleep 1
done
Python や Bash を初めて使う人は、この小さなことを知らないでしょう。役に立つかもしれません。私は最初はこのような小さなことで苦労していました。他の人には苦労してほしくありません。