AWSのEC2上で動かしているシステムで、止めたくないアプリがあったので、調べて回してみた。万が一(DBとかメモリ不足)とかで死んだ場合に再起動するように5分毎にCronでチェックして、死んでたら起動を掛けてるようにした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/bash # 監視プロセス名 PROCESS_NAME=myapp.jar # 監視するプロセスが何個あるかカウント count=`ps -ef | grep $PROCESS_NAME | grep -v grep | wc -l` # 監視するプロセスが0個場合に、処理を分岐する if [ $count = 0 ]; then # 0個場合は、サービスが停止している echo "$PROCESS_NAME is stopped. restarting now..." # 起動 service myapp start else # 動いている echo "$PROCESS_NAME is running..." fi |
とりあえず、これで死んでも気付かないで止まっているという事が無くなりそう。