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),新的博文會在網咖社更新,歡迎瀏覽。