系统服务nginx启动控制脚本

#!/bin/sh
#  
# nginx - this script starts and stops the nginx daemon  
#  
# chkconfig:   - 85 15  
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \  
#               proxy and IMAP/POP3 proxy server  
# processname: nginx  
# config:      /etc/nginx/nginx.conf  
# config:      /etc/sysconfig/nginx  
# pidfile:     /var/run/nginx.pid  
# Source function library.  
. /etc/rc.d/init.d/functions 
# Source networking configuration.  
. /etc/sysconfig/network 
# Check that networking is up.  
[ "$NETWORKING" = "no" ] && exit 0  
##### nginx的执行程序所在路径 #####
nginx="/usr/local/nginx/sbin/nginx" 
prog=$(basename $nginx)  
##### nginx配置文件所在路径 #####
NGINX_CONF_FILE="/etc/nginx/nginx.conf" 
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx 
lockfile=/var/lock/subsys/nginx 
make_dirs() {  
   # make required directories  
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed ‘s/[^*]*--user=\([^ ]*\).*/\1/g‘ -`  
   options=`$nginx -V 2>&1 | grep ‘configure arguments:‘`  
   for opt in $options; do 
       if [ `echo $opt | grep ‘.*-temp-path‘` ]; then 
           value=`echo $opt | cut -d "=" -f 2`  
           if [ ! -d "$value" ]; then 
               # echo "creating" $value  
               mkdir -p $value && chown -R $user $value  
           fi 
       fi 
   done 
}  

start() {  
    [ -x $nginx ] || exit 5  
    [ -f $NGINX_CONF_FILE ] || exit 6  
    make_dirs  
    echo -n $"Starting $prog: " 
    daemon $nginx -c $NGINX_CONF_FILE  
    retval=$?  
    echo 
    [ $retval -eq 0 ] && touch $lockfile  
    return $retval  
}  

stop() {  
    echo -n $"Stopping $prog: " 
    killproc $prog -QUIT  
    retval=$?  
    echo 
    [ $retval -eq 0 ] && rm -f $lockfile  
    return $retval  
}  

restart() {  
    configtest || return $?  
    stop  
    sleep 1  
    start  
}  

reload() {  
    configtest || return $?  
    echo -n $"Reloading $prog: " 
    killproc $nginx -HUP  
    RETVAL=$?  
    echo 
}  

force_reload() {  
    restart  
}  

configtest() {  
  $nginx -t -c $NGINX_CONF_FILE  
}  

rh_status() {  
    status $prog  
}  

rh_status_q() {  
    rh_status >/dev/null 2>&1  
}  

case "$1" in 
    start)  
        rh_status_q && exit 0  
        $1  
        ;;  
    stop)  
        rh_status_q || exit 0  
        $1  
        ;;  
    restart|configtest)  
        $1  
        ;;  
    reload)  
        rh_status_q || exit 7  
        $1  
        ;;  
    force-reload)  
        force_reload  
        ;;  
    status)  
        rh_status  
        ;;  
    condrestart|try-restart)  
        rh_status_q || exit 0  
            ;;  
    *)  
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" 
        exit 2  
esac

将以上内容保存为/etc/init.d/nginx ,并添加可执行权限,

再添加进系统服务,chkconfig --add nginx

最后设置为开机启动:chkconfig nginx on

启动:service nginx start

查看状态:netstat -ntlp | grep 80

时间: 2024-10-27 01:50:02

系统服务nginx启动控制脚本的相关文章

利用BashShell编写Nginx服务控制脚本

使用源码包安装的Nginx没办法使用"service nginx start"或"/etc/init.d/nginx start"进行操作和控制,所以写了以下的服务控制脚本. 可以使用的选项有: start  启动 stop  停止 reload 重载 restart  重启 status   状态 test 检查配置文件 1.创建脚本文件并添加执行权限 # touch /etc/init.d/nginx # chmod +x /etc/init.d/nginx 2

编写Nginx服务控制脚本

./configure --user=www --group=www --prefix=/application/nginx --sbin-path=/application/nginx/sbin --conf-path=/application/nginx/conf/nginx.conf --error-log-path=/application/nginx/logs/error.log --http-log-path=/application/nginx/logs/access.log --

nginx启动官方脚本

新建nginx启动文件 touch /etc/init.d/nginx chmod 755 nginx 文件内容 修改红色的地方,为自己本地路径就可以了 #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: NGINX is an HTTP(S) server, HTTP(S) reverse # proxy and IMAP/POP3 p

Nginx启动/重启脚本详解

Nginx手动启动 停止操作 停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的步骤1:查询nginx主进程号ps -ef | grep nginx在进程列表里 面找master进程,它的编号就是主进程号了.步骤2:发送信号从容停止Nginx:kill -QUIT 主进程号快速停止Nginx:kill -TERM 主进程号强制停止Nginx:pkill -9 nginx 另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,

linux下nginx启动停止重启控制脚本

这是控制nginx服务的脚本文件,包括控制nginx的启动.重启.停止.平滑重启.对配置文件的额检查. [[email protected] ~]# cat nginx.sh #!/bin/env bash # description:nginx server   ###必须加描述 # nginx - this script is used to control nginx service # processname nginx # chkconfig: - 85 15 # edit by su

tengine/nginx服务启动管理脚本(未使用系统funtions函数)

tengine是淘宝对于nginx1.6.2的一个二次开发,性能比原生态nginx更好,这几天在做测试,想应用到现有的架构里.源码包安装后就牵涉到一个添加到系统服务方便管理问题,到网上搜nginx启动脚本一大堆,但不是自己写的总归不放心,再者好多用的是系统的/etc/rc.d/init.d/funtions函数来实现的,虽然看着很健壮,但想到出了问题后又得研究怎么排查,一不做二不休干脆写一个,把脚本和添加到系统服务的过程分享一下. 功能主要有:service tengine start serv

Nginx和PHP-FPM的启动/重启脚本 [转发]

Nginx和PHP-FPM的启动/重启脚本 [转发] (2012-07-27 16:07:52) 标签: it 分类: 学习 转载自:http://blog.sina.com.cn/s/blog_539d6e0c0101357j.html 服务器上的Nginx和PHP都是源码编译安装的,不支持类似以前的nginx (start|restart|stop|reload)了.自己动手丰衣足食.以下脚本应该在RHEL, Fedora, CentOS下都适用. 一.Nginx启动脚本/etc/init.

LNMP之 nginx 启动脚本和配置文件

因为 nginx 启动不方便,所以我们需要自已手动来编译一个nginx 的启动脚本 [[email protected] ~]# vim /etc/init.d/nginx  #加入以下内容 #!/bin/bash# chkconfig: - 30 21# description: http service.# Source Function Library. /etc/init.d/functions# Nginx Settings NGINX_SBIN="/usr/local/nginx/s

LNMP的Nginx启动脚本和配置文件

配置LNMP完成安装,并把PHP也解析完成,但是Nginx启动使用的是一个可执行文件:/usr/local/nginx/sbin/nginx 来启动,非常不方便,要给Nginx写一个启动脚本,同Apache,虽然Apache的启动脚本没有放到/etc/init.d目录下,但Apache有个非常方便的启动.重启.停止脚本,即:"apachectl",而Nginx没有这样的工具, 我们需要手动制作一个启动脚本,如下: [[email protected] ~]# vim /etc/init