Nginx/Tengine服務啓動管理腳本(未使用系統funtions函數)

    tengine是淘寶對於nginx1.6.2的一個二次開發,性能比原生態nginx更好,這幾天在做測試,想應用到現有的架構裏。源碼包安裝後就牽涉到一個添加到系統服務方便管理問題,到網上搜nginx啓動腳本一大堆,但不是自己寫的總歸不放心,再者好多用的是系統的/etc/rc.d/init.d/funtions函數來實現的,雖然看着很健壯,但想到出了問題後又得研究怎麼排查,一不做二不休乾脆寫一個,把腳本和添加到系統服務的過程分享一下。

功能主要有: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)三個級別的開機自啓動

好了,結束,測了一下,還是比較方便的。

自建個人原創站運維網咖社(www.net-add.com),新的博文會在網咖社更新,歡迎瀏覽

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章