Nginx启停脚本
Nginx启停脚本
vim nginx_tools.sh
#! /bin/sh
NGINX_HOME=/usr/local/nginx
function help()
{
echo "Usage: nginx_tools reload|restart|stop|start|term|show|relog"
echo -e "\treload\t重新载入配置,主进程不停止,工作进程重启"
echo -e "\trestart\t重启nginx"
echo -e "\tstop\t停止nginx,但等待交易处理完毕"
echo -e "\tstart\t启动nginx"
echo -e "\tterm\t立即停止nginx"
echo -e "\tshow\t查看nginx进程状态"
echo -e "\trelog\t重新打开日志文件,不影响交易"
exit 1
}
#如果参数1为空,则走help()
if [ -z $1 ]; then
help
fi
if [ -e $NGINX_HOME/logs/nginx.pid ]; then
#如果nginx.pid文件存在
nginx_pid=`cat $NGINX_HOME/logs/nginx.pid 2>/dev/null`
else
#否则通过grep过滤出Nginx的进程号
nginx_pid=$(ps -ef | grep -w `whoami` | grep -w "nginx:" | grep -w master | grep -vw grep | awk '{print $2}')
fi
#如果nginx进程不存在
if [ -z $nginx_pid ]; then
if [ "$1" == "reload" ] || [ "$1" == "restart" ] || [ "$1" == "relog" ]; then
#等待输入,10s
read -p "nginx未启动,是否启动:[Y/N] " -t 10 option
if [ $? -ne 0 ]; then
echo -e "\n超时未选择,自动退出"
exit 2
fi
if [ "$option" == "Y" ]; then
$NGINX_HOME/sbin/nginx
exit 0
else
exit 3
fi
elif [ "$1" == "stop" ] || [ "$1" == "term" ] || [ "$1" == "show" ] ; then
echo "nginx已经停止"
exit 4
fi
fi
case $1 in
reload)
kill -HUP $nginx_pid
;;
restart)
kill -QUIT $nginx_pid
sleep 2
$NGINX_HOME/sbin/nginx
;;
stop)
kill -QUIT $nginx_pid
;;
start)
if [ -z $nginx_pid ]; then
$NGINX_HOME/sbin/nginx
else
echo "nginx已经启动"
fi
;;
term)
kill -TERM $nginx_pid
;;
show)
date +"%F %X"
ps -faux | grep -w `whoami` | grep -w "nginx:" | grep -v grep
;;
relog)
kill -USR1 $nginx_pid
;;
*)
echo "暂不支持的选项"
help
;;
esac
exit 0
浙公网安备 33010602011771号