私は非常に単純なPythonスクリプトを持っており、ubuntu12.04サーバーで常に実行したいと思っています。upstart+ monitを使用することを考えました。問題は、これらのツールが単純なものとしてはかなり複雑に見えることです。私のような人間であり、ウェブ上で簡単な例を見つけることができません。
Upstart + monit overkillですか? /誰かがもっと簡単な代替案を知っていますか? /または良いチュートリアル?
この回答 から取得:
あなたはbashスクリプトを書くことができますmonitor.sh
これは、pythonスクリプトを開始し、クラッシュした場合は再起動しますが、スクリプトが正常に終了した場合は再起動しません。
#!/bin/bash
until myscript.py; do
echo "'myscript.py' crashed with exit code $?. Restarting..." >&2
sleep 1
done
次に、モニタースクリプトをバックグラウンドで開始します。
Nohup monitor.sh &
Nohup
の代わりに、バックグラウンドプロセスを実行するために tmux または screen を検討することもできます。
上記の答えは素晴らしいです。今のところコメントできませんので、ここで答えを改善してください。
「myscript」はpythonスクリプトであり、bash envで実行されていないため、関数を作成することもできます。
そう、
#!/bin/bash
myscript(){
python3 myscript [args..]
}
until myscript; do
echo "'myscript' crashed with exit code $?. Restarting..." >&2
sleep 1
done
pythonまたはbashの新しい人は、この小さなことを知りません。彼らを助けるかもしれません。私は最初はそのような小さなことで苦労していました。他の人に知られたくないです!