您的位置:首页 > 运维架构 > Nginx

Nginx启动脚本

2016-05-12 18:23 691 查看
       编译安装的nginx由于没有提供nginx服务的管理脚本,在启动、停止以及重启nginx时非常不方便,因此我写了一个比较粗糙的脚本,可使用linux中的service服务来对nginx进行管理,非常方便,同时也可以加入ckhconfig管理列表,方便不同级别的自启动,简单实用方法如下:

1、将脚本复制到/etc/init.d/目录下,命名为nginx,并赋予其执行权限

2、修改/etc/init.d/nginx,将base_dir变量修改为本机nginx的安装目录

3、使用方法如下:

       service nginx start  启动nginx

       service nginx stop  停止nginx

       service nginx restart  重启nginx

       service nginx relaod  平滑重启nginx

4、加入chkconfig管理

[root@centos ~]# chkconfig --add nginx
注意:如果加入chkconfig时报如下错误:service nginx does not support chkconfig,是因为脚本里没有加入chkconfig可识别的相关参数,通常我们会在脚本中加入以下两句代码:

# chkconfig: 2345 10 90  

# description: nginx  

第一行表示脚本在chkconfig管理中启动的相关参数,2345表示默认启动级别,10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低

第二行是脚本描述信息

两行代码的位置要在#!/bin/bash 声明之后,切行首的#不可省略

5、脚本代码

#!/bin/bash
# chkconfig: 2345 10 90
# description: nginx
. /etc/rc.d/init.d/functions
function show_usage(){
usage="Usage: `basename $0` [ start|stop|restart|reload ]"
echo $usage
exit
}
base_dir=/application/nginx/
[[ $# != 1 ]] && show_usage

nginx=${base_dir}sbin/nginx
case $1 in
start)
[[ `netstat -ntlup|grep nginx|wc -l` > 0 ]] && failure && echo "Nginx is Running!" && exit
echo "Starting Nginx..."
$nginx
([ $? -eq 0 ] && success && echo "Nginx starts successfully!") || (failure && echo "Failed start nginx")
;;
stop)
[[ `netstat -ntlup|grep nginx|wc -l` == 0 ]] && failure && echo "Nginx is NOT running!" && exit
echo "Stopping Nginx..."
$nginx -s stop
([ $? -eq 0 ] && success && echo "Nginx stops successfully!") || (failure && echo "Failed stop nginx!")

;;
restart)
if [[ `netstat -ntlup|grep nginx|wc -l` == 0 ]]; then
echo "Starting Nginx..."
$nginx
[ $? -eq 0 ] && success && echo "Nginx starts successfully!"
else
echo "Stopping Nginx..."
$nginx -s stop
([ $? -eq 0 ] && success && echo "Nginx stops successfully!") || (failure && echo "Failed stop nginx!")
echo "Starting Nginx..."
$nginx
([ $? -eq 0 ] && success && echo "Nginx starts successfully!") || (failure && echo "Failed start nginx")
fi
;;
reload)
[[ `netstat -ntlup|grep nginx|wc -l` == 0 ]] && failure && echo "Nginx is NOT Running!" && exit
$nginx -s reload
[ $? -eq 0 ] && success && echo "Nginx reloads successfully!"
;;
*)
show_usage
;;
esac
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: