sentOS8下制作nginx启动脚本

#!/bin/bash

#varables------------------------------------------------------

#variables
nginx_install_doc=/usr/local/nginx							#	nginx装在了哪里
proc=nginx													#	nginx进程叫什么名字
nginxd=$nginx_install_doc/nginx-1.19.10/sbin/nginx			#	启动管理的命令在哪里
pid_file=$nginx_install_doc/nginx-1.19.10/logs/nginx.pid	#	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

#假如pid文件存在,name统计一下nginx进程数量
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--------------------------------------------------
mystart (){

#如果nginx没有启动直接启动,否则报错已经启动
if [ -f $pid_file ]&&[ $nginx_process_num -ge 1 ];then
	echo "nginx 已经启动了!!!running... "
else
	#如果pid文件存在,但是没有进程,说明上一次非法关闭了nginx,造成pid文件没有自动删除,所以启动nginx之前先删除旧的pid文件
	if [ -f $pid_file ] && [ $nginx_process_num -lt 1 ];then
		rm -f $pid_file
	#可以使用两个函数,两种方法来执行命令,并返回执行结果
    #1)daemon
    #2)action建议这个,简单易用
    
	#echo " nginx start `daemon $nginxd"
		action "nginx start" $nginxd		#启动nginx命令
	fi
	#echo "nginx start daemon $nginxd  "
	action "nginx start" $nginxd
fi

}


mystop (){

#判断nginx启动的情况下才会执行关闭,如果没启动直接报错,或者提示用户服务没启动,这里我直接报错的原因是为了给大家演示失败的输出
if [ -f $pid_file ]&&[ $nginx_process_num -ge 1 ];then
	action "nginx stop" killall -s QUIT $proc
    rm -f $pid_file
else
	action "nginx stop" killall -s QUIT $proc 2>/dev/null
fi

}





mystatus (){ 

if [ -f $pid_file ]&&[ $nginx_process_num -ge 1 ];then
	echo "nginx 启动了running. . ."
else
	echo "nginx 还没启动stop"
fi

}



myreload (){

#重载的目的是让主进程重新加载配置文件,但是前提是服务必须开启
#这里先判断服务是否开启,开启就执行加载,没有开启直接报加载错误
if [ -f $pid_fi1e ]&&[ $nginx_process_num -ge 1 ]; then
	action "nginx reload" killall -s HUP $proc
else
	action "nginx reload" killall -s HUP $proc 2>/dev/null
fi

}


#case

case $1 in
start)
	mystart
;;
stop)
	mystop
;;
restart)
	mystop
	sleep 1
	mystart 
;;
status)
	mystatus
;;
reload)
	myreload
;;
*)
	echo "使用如下命令: $0 start|stop|restart|status|reload"
esac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值