#!/bin/bash
# chkconfig: 2345 32 62
# description: nginx is a http server
[ -f /etc/init.d/functions ] && . /etc/init.d/functions
pidfile=/usr/local/nginx/logs/nginx.pid
nginx=/usr/local/nginx/sbin/nginx
usage(){
RETVAL=$?
if [ $RETVAL -eq 0 ];then
action "nginx is $1" /bin/true
else
action "nginx is $1" /bin/false
fi
}
Start_nginx(){
if [ -f $pidfile ]; then
echo "nginx is runing"
else
$nginx start
RETVAL=$?
usage STARTED
fi
return $RETVAL
}
Stop_nginx(){
if [ -f $pidfile ]; then
$nginx -s stop
usage STOPED
else
ection "nginx is spoped" /bin/false
fi
return $RETVAL
}
Reload_nginx(){
if [ -f $pidfile ]; then
$nginx -s reload
usage RELOAD
else
action "nginx is stop, please start nginx!" /bin/false
fi
return $RETVAL
}
case "$1" in
start)
Start_nginx
RETVAL=$?
;;
stop)
Stop_nginx
RETVAL=$?
;;
restart)
Stop_nginx
sleep 2
Start_nginx
RETVAL=$?
;;
reload)
Reload_nginx
RETVAL=$?
;;
*)
echo "usage:$0 {start|stop|reload|restart}"
exit 1
esac
exit $RETVAL
思路
centos6开机作为启动项时默认会传值start|stop|restart|值
需要注意nginx.pid的文件,随着启动进程号的出现而出现
首先把写好的脚本cp nginx.sh /etc/init.d/nginx
chmod +x /etc/init.d/nginx
脚本开始加上启动顺序具体还要了解下基础
# chkconfig: 2345 10 90
# description: nginx is a http server
需要了解基础contos系统启动
nit.d ll /etc/rc.d/rc3.d |grep 31
init.d ll /etc/rc.d/rc3.d |grep 32
➜ init.d ll /etc/rc.d/rc3.d |grep 61
➜ init.d ll /etc/rc.d/rc3.d |grep 62
然后把脚本启动修改为
# chkconfig: 2345 31 62
# description: nginx is a http server
注意这是centos6的使用方法和7 有不同之处
➜ init.d chkconfig --add nginx
➜ init.d chkconfig --list nginx
chkconfig nginx on/off
自启动的机制就是 server 服务 start
所以加入自启动后系统会自动给脚本传start参数