Nginx啟動(dòng)停止腳本
在進(jìn)行啟動(dòng)Nginx時(shí),需要對(duì)其進(jìn)行檢查語(yǔ)法,語(yǔ)法成功則啟動(dòng)Nginx
當(dāng)Nginx語(yǔ)法檢查錯(cuò)誤,提示錯(cuò)誤的地方,然后進(jìn)行修復(fù)故障。修復(fù)成功則繼續(xù)啟動(dòng)。
[root@shell /scripts]# cat case-4.sh
#!/bin/bash
#1.調(diào)用函數(shù)庫(kù)
[ -f /etc/init.d/functions ] && source /etc/init.d/functions
#1.0 加鎖機(jī)制
Suo=/tmp/nginx.lock
if [ -f $Suo ];then
? ? echo "此腳本$0 正在運(yùn)行中,請(qǐng)稍后再執(zhí)行........."
? ? exit
fi
#創(chuàng)建鎖
touch $Suo &>/dev/null
#2. 判斷執(zhí)行腳本時(shí)是否只有一個(gè)位置變量
if [ $# -ne 1 ];then
? ? echo "Usage: $0 {start|stop|status|restart|reload}"
? ? exit
fi
#3.寫case語(yǔ)句變量體
State=$1
Pid_File=/var/run/nginx.pid
case $State in
? ? start)
? ? ? ? ? ? if [ -f $Pid_File ];then
? ? ? ? ? ? ? ? action "服務(wù)Nginx正在運(yùn)行中................" /bin/true
? ? ? ? ? ? else
? ? ? ? ? ? ? ? /usr/sbin/nginx -t &>/dev/null
? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? /usr/sbin/nginx &>/dev/null && sleep 2
? ? ? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx啟動(dòng)成功..............." /bin/true
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx啟動(dòng)失敗..............." /bin/false
? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? /usr/sbin/nginx -t &>/tmp/nginx_err.log
? ? ? ? ? ? ? ? ? ? Nginx_Err_File=$(awk -F '[ :]' 'NR==1{print $(NF-1)}'? /tmp/nginx_err.log)
? ? ? ? ? ? ? ? ? ? Nginx_Err_Line=$(awk -F '[ :]' 'NR==1{print $NF}'? /tmp/nginx_err.log)
? ? ? ? ? ? ? ? ? ? /usr/sbin/nginx -t
? ? ? ? ? ? ? ? ? ? read -p "Nginx配置文件檢查語(yǔ)法失敗!配置錯(cuò)誤的文件為:${Nginx_Err_File}錯(cuò)誤的行為第${Nginx_Err_Line}行,是否需要進(jìn)行配置修改[Yes|No]:" Qr
? ? ? ? ? ? ? ? ? ? case $Qr in
? ? ? ? ? ? ? ? ? ? ? ? Yes|Y|y|yes)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? vim? +$Nginx_Err_Line $Nginx_Err_File
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /usr/sbin/nginx -t &>/dev/null
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /usr/sbin/nginx &>/dev/null && sleep 2
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx啟動(dòng)成功..............." /bin/true
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx啟動(dòng)失敗..............." /bin/false
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? echo "Nginx語(yǔ)法檢查還是失??!你可以進(jìn)行選擇手動(dòng)修改!"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ;;
? ? ? ? ? ? ? ? ? ? ? ? No|N|n|no)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? echo "你選擇了不進(jìn)行修改!你可以進(jìn)行手動(dòng)修改配置文件!"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ;;
? ? ? ? ? ? ? ? ? ? ? ? *)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? echo "你輸入的不符合要求!請(qǐng)按照要求輸入!"
? ? ? ? ? ? ? ? ? ? esac
? ? ? ? ? ? ? ? fi
? ? ? ? ? ? fi
? ? ? ? ? ? ;;
? ? stop)
? ? ? ? ? ? if [ -f $Pid_File ];then
? ? ? ? ? ? ? ? /usr/sbin/nginx -s stop &>/dev/null && sleep 2
? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx停止成功..............." /bin/true
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx停止失敗..............." /bin/false
? ? ? ? ? ? ? ? fi
? ? ? ? ? ? else
? ? ? ? ? ? ? ? action "服務(wù)Nginx不在運(yùn)行中................." /bin/true
? ? ? ? ? ? fi
? ? ? ? ? ? ;;
? ? status)
? ? ? ? ? ? if [ -f $Pid_File ];then
? ? ? ? ? ? ? ? action "服務(wù)Nginx正在運(yùn)行中................." /bin/true
? ? ? ? ? ? else
? ? ? ? ? ? ? ? action "服務(wù)Nginx不在運(yùn)行中................." /bin/true
? ? ? ? ? ? fi
? ? ? ? ? ? ;;
? ? restart)
? ? ? ? ? ? if [ -f $Pid_File ];then
? ? ? ? ? ? ? ? /usr/sbin/nginx -s stop &>/dev/null && sleep 2
? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx停止成功..............." /bin/true
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx停止失敗..............." /bin/false
? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? /usr/sbin/nginx &>/dev/null && sleep 2
? ? ? ? ? ? ? ? if [ $? -eq 0 ];then? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx啟動(dòng)成功..............." /bin/true
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx啟動(dòng)失敗..............." /bin/false
? ? ? ? ? ? ? ? fi
? ? ? ? ? ? else
? ? ? ? ? ? ? ? action "服務(wù)Nginx不在運(yùn)行中................." /bin/true
? ? ? ? ? ? ? ? /usr/sbin/nginx &>/dev/null && sleep 2
? ? ? ? ? ? ? ? if [ $? -eq 0 ];then? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx啟動(dòng)成功..............." /bin/true
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx啟動(dòng)失敗..............." /bin/false
? ? ? ? ? ? ? ? fi
? ? ? ? ? ? fi
? ? ? ? ? ? ;;
? ? reload)
? ? ? ? ? ? if [ -f $Pid_File ];then
? ? ? ? ? ? ? ? /usr/sbin/nginx -s reload &>/dev/null && sleep 2
? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx平滑重啟成功.........." /bin/true
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? action "服務(wù)Nginx平滑重啟失敗.........." /bin/false
? ? ? ? ? ? ? ? fi
? ? ? ? ? ? else
? ? ? ? ? ? ? ? action "服務(wù)Nginx不在運(yùn)行中,無法進(jìn)行平滑重啟操作......" /bin/false
? ? ? ? ? ? fi
? ? ? ? ? ? ;;
? ? *)
? ? ? ? ? ? echo "Usage: $0 {start|stop|status|restart|reload}"
? ? ? ? ? ? exit
esac
#解鎖
rm -f $Suo &>/dev/null