模擬Nginx服務啟動停止重新載入指令碼
Nginx服務啟動停止重新載入指令碼
要求:
已知Nginx管理命令為:
啟動:/application/nginx/sbin/nginx
停止:/application/nginx/sbin/nginx -s stop
重新載入:/application/nginx/sbin/nginx -s reload
請用case指令碼模擬Nginx啟動關閉
/etc/init.d/nginx{start|stop|restart|reload}
並實現可通過chkonfig管理
指令碼實現
指令碼
#***********************
#nginx 啟動指令碼
#2018-11-29
#***********************
#!/bin/bash
#呼叫系統函式及自定義變數
[ -f /etc/init.d/functions ]&& . /etc/init.d/functions
Pidfile=/application/nginx/logs/nginx.pid
#共用函式
publics(){
RETVAL=$?
if [ $RETVAL -eq 0 ];then
action "Nginx is $1" /bin/true
else
actio "Nginx is $1" /bin/false
fi
}
#啟動函式start
start(){
if [ -f $Pidfile ];then
echo "Nginx is running"
else
/application/nginx/sbin/nginx
publics Started
fi
return $RETVAL
}
#關閉函式stop
stop(){
if [ ! -f $Pidfile ];then
echo "Nginx is not runing"
else
/application/nginx/sbin/nginx -s stop
publics Stopped
fi
return $RETVAL
}
#重新載入函式reload
reload(){
if [ ! -f $Pidfile ];then
echo "Can't open $Pidfile ,no such file directory"
else
/application/nginx/sbin/nginx -s reload
publics Reload
fi
return $RETVAL
}
#case 語句使用選擇
case "$1" in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
reload)
reload
RETVAL=$?
;;
restart)
stop
sleep 2
start
RETVAL=$?
;;
*)
echo "USAGE:$0 {satrt|stop|restart|reload}"
exit 1
;;
esac