Linuxデーモンシェルシナリオ

1154 ワード

http://blog.csdn.net/special23/article/details/52690057
サービス端末のプログラムは長期的なバックグランドの安定運行が必要です。プログラム自体の丈夫さを保証する以外に、いくつかのデーモンプログラムが必要です。
簡単なシェルスクリプトの方法を共有します。
#! /bin/sh
#       
PRO_NAME=rails
CMD="nohup bundle exec rails server webrick -p3000 -b 0.0.0.0 -e production >/dev/null 2>&1 -d &"
while true ; do
     # ps  $PRO_NAME    
     NUM=`ps aux | grep -w ${PRO_NAME} | grep -v grep |wc -l`
     #echo $NUM
     #  1,    
     if [ "${NUM}" -lt "1" ];then
         echo "${PRO_NAME} was killed"
         $CMD
    #  1,      ,  
    elif [ "${NUM}" -gt "1" ];then
        echo "more than 1 ${PRO_NAME},killall ${PRO_NAME}"
        killall -9 $PRO_NAME
        $CMD
     fi
     #kill    
     NUM_STAT=`ps aux | grep -w ${PRO_NAME} | grep T | grep -v grep | wc -l`
     if [ "${NUM_STAT}" -gt "0" ];then
         killall -9 ${PRO_NAME}
         $CMD
    fi
     sleep 5s
done

exit 0
スクリプトをxxx.shとして保存します。
スクリプト実行権限chmod 777を設定します。 xxx.sh
コンソール実行則:/xxx.sh  このようにして、常にxxxxプログラムの実行が保証されます。
バックグラウンドの継続運転が必要な場合:nohup ./xxx.sh&