centos/rhel下实现nginx自启动脚本实例
通常在centos、rhel的OS下,我们大多是通过chkconfig来管理服务,比如开机自动启动服务之类。
这里给大家介绍一个很好用的nginx启动脚本。以及简单的使用,如下:
1.执行如下命令:
vim/etc/init.d/nginxd
2.输入如下内容:
注意:该文件中的如下几个变量,都需要根据你实际的目录来改写。
nginx="/usr/local/nginx/sbin/nginx"##nginx的可执行文件路径
lockfile="/var/nginx/nginx.lock"##需要先创建/var/nginx目录
NGINX_CONF_FILE="/etc/nginx/nginx.conf"##需要先创建该配置文件
#!/bin/sh
#
#nginx-thisscriptstartsandstopsthenginxdaemon
#
#chkconfig:-8515
#description:NginxisanHTTP(S)server,HTTP(S)reverse\
#proxyandIMAP/POP3proxyserver
#processname:nginx
#Sourcefunctionlibrary.
./etc/rc.d/init.d/functions
#Sourcenetworkingconfiguration.
./etc/sysconfig/network
#Checkthatnetworkingisup.
["$NETWORKING"="no"]&&exit0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename$nginx)
sysconfig="/etc/sysconfig/$prog"
lockfile="/var/nginx/nginx.lock"
pidfile="/var/nginx/${prog}.pid"
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[-f$sysconfig]&&.$sysconfig
start(){
[-x$nginx]||exit5
[-f$NGINX_CONF_FILE]||exit6
echo-n$"Starting$prog:"
daemon$nginx-c$NGINX_CONF_FILE
retval=$?
echo
[$retval-eq0]&&touch$lockfile
return$retval
}
stop(){
echo-n$"Stopping$prog:"
killproc-p$pidfile$prog
retval=$?
echo
[$retval-eq0]&&rm-f$lockfile
return$retval
}
restart(){
configtest_q||return6
stop
start
}
reload(){
configtest_q||return6
echo-n$"Reloading$prog:"
killproc-p$pidfile$prog-HUP
echo
}
configtest(){
$nginx-t-c$NGINX_CONF_FILE
}
configtest_q(){
$nginx-t-q-c$NGINX_CONF_FILE
}
rh_status(){
status$prog
}
rh_status_q(){
rh_status>/dev/null2>&1
}
#Upgradethebinarywithnodowntime.
upgrade(){
localoldbin_pidfile="${pidfile}.oldbin"
configtest_q||return6
echo-n$"Upgrading$prog:"
killproc-p$pidfile$prog-USR2
retval=$?
sleep1
if[[-f${oldbin_pidfile}&&-f${pidfile}]];then
killproc-p$oldbin_pidfile$prog-QUIT
success$"$progonlineupgrade"
echo
return0
else
failure$"$progonlineupgrade"
echo
return1
fi
}
#Tellnginxtoreopenlogs
reopen_logs(){
configtest_q||return6
echo-n$"Reopening$proglogs:"
killproc-p$pidfile$prog-USR1
retval=$?
echo
return$retval
}
case"$1"in
start)
rh_status_q&&exit0
$1
;;
stop)
rh_status_q||exit0
$1
;;
restart|configtest|reopen_logs)
$1
;;
force-reload|upgrade)
rh_status_q||exit7
upgrade
;;
reload)
rh_status_q||exit7
$1
;;
status|status_q)
rh_$1
;;
condrestart|try-restart)
rh_status_q||exit7
restart
;;
*)
echo$"Usage:$0{start|stop|reload|configtest|status|force-reload|upgrade|restart|reopen_logs}"
exit2
esac
保存完毕之后,可以执行以下命令来启动nginx
chmod777/etc/init.d/nginxd /etc/init.d/nginxdstart
3.配置开机启动
执行以下命令:
chkconfignginxdon
可以以下命令查看是否成功
chkconfig--list|grepnginxd