Nginx/Tengineサービス起動管理スクリプト(システムfuntions関数を使用していない)


tengineは宝を洗うnginx 1です.6.2の二次開発では、元の生態nginxよりも性能が優れており、ここ数日テストを行い、既存のアーキテクチャに応用したいと考えています.ソースパッケージのインストール後、システムサービスに追加する便利な管理問題に関連し、ネット上でnginx起動スクリプトを検索するが、自分で書いたのではなく、不安ではなく、システムの/etc/rcを使うことが多い.d/init.d/funtions関数で実現したのは、丈夫そうに見えますが、問題が発生したと思ったらどうやって調べるかを研究し、何もしないでいっそ1つ書いて、スクリプトとシステムサービスに追加する過程を共有しなければなりません.
主な機能は以下の通りである:service tengine start
            service tengine stop
            service tengine restart
            service tengine reload
            service tengine status
スクリプト・プログラムは次のとおりです(コア・アルゴリズムですか、ファイル・ロックと「$?」の判断):
#!/bin/bash
#writer:gaolixu
#chkconfig: 345 86 16
start(){
if [ -f /var/lock/subsys/tengine.lock ];then
  echo "Tengine is already running: [ FAILED ]"
else
  if /usr/local/nginx/sbin/nginx ;then
    echo "Starting tengine: [ OK ]" 
    touch /var/lock/subsys/tengine.lock
  else
    echo "Starting tengine: [ FAILED ]"
  fi
fi
}
stop(){
if [ -f /var/lock/subsys/tengine.lock  ];then
 if /usr/local/nginx/sbin/nginx -s quit ;then
   echo "Stopping tengine: [ OK ]"
   rm -rf /var/lock/subsys/tengine.lock
 else
   echo "Stopping tengine: [ FAILED ]"
 fi
else
 echo "Tengine not runing: [ FAILED ]"
fi
}
reload(){
if /usr/local/nginx/sbin/nginx -s reload ;then
  echo "Reload tengine: [ OK ]"
else
  echo "Reload tengine: [ FAILED ]"
fi
}
case $1 in
"start")
 start
;;
"stop")
 stop
;;
"restart")
 stop
 sleep 1
 start
;;
"reload")
 reload
;;
"status")
 s=`pidof -s nginx`
 [ "$s" ] && echo "Tengine(nginx) pid $s running!!" || echo "Tengine(nginx) not runging!"
;;
*)
echo "usage: $0 start|stop|restart|reload|status"
esac

スクリプトが作成されたらtengineと名前を付け、/etc/initに置きます.d/ディレクトリの下
chmod 777 tengine権限を実行可能に変更
chkconfig--add tengine chkconfigサービス管理に追加
chkconfig tengine on設定スクリプトコメント(345)3レベルの起動自起動
はい、終わりました.測ってみましたが、やはり便利です.
自建个人原创站运维网カレー社(www.net-add.com)は、新しいブログをネットカフェで更新します.