#!/usr/bin/bash
#Copyright (C) 2020 Sangfor Ltd. All rights reserved.
#Date:2020年06月29日
#Description:nginx 的启动管理脚本 srcipt
#variables
nginx_install_doc=/usr/local/nginx
nginxd=$nginx_install_doc/sbin/nginx
pid_file=$nginx_install_doc/logs/nginx.pid
# Source function library 系统提供的函数库
if [ -f /etc/init.d/functions ];then
. /etc/init.d/functions
else
echo "not found file /etc/init.d/functions "
exit
fi
if [ -f $pid_file ];then
nginx_process_id=`cat $pid_file`
nginx_process_num=`ps aux |grep $nginx_process_id |grep -v "grep"|wc -l`
fi
#function
start () {
# 如果nginx没有启动直接启动,否则报错 已经启动
if [ -f $pid_file ] && [ $nginx_process_num -ge 1 ];then
echo "nginx running..."
else
if [ -f $pid_file ] && [ $nginx_process_num -lt 1 ];then
rm -f $pid_file
# 使用函数库中的函数启动nginx
echo " nginx start `daemon $nginxd` "
# 或者使用 action "nginx start" $nginxd
fi
echo " nginx start `daemon $nginxd` "
fi
}
stop () {
if [ -f $pid_file ] && [ $nginx_process_num -ge 1 ];then
action "nginx stop" killall -s QUIT $nginxd
rm -rf $pid_file
else
action "nginx stop" killall -s QUIT $nginxd
fi
}
restart () {
stop
sleep 1
start
}
reload () {
if [ -f $pid_file ] && [ $nginx_process_num -ge 1 ];then
action "nginx reload" killall -s HUP nginx
else
action "nginx reliad" killall -s HUP nginx 2>/dev/null
fi
}
status () {
if [ -f $pid_file ] && [ $nginx_process_num -ge 1 ];then
echo "nginx running..."
else
echo "nginx stop"
fi
}
#callable
case $1 in
start) start;;
stop) stop;;
restart) restart;;
reload) reload;;
status) status;;
*) echo "USAGE: $0 start|stop|restart|reload|status";;
esac