zoukankan      html  css  js  c++  java
  • nginx、php-fpm启动脚本

    Nginx官方启动脚本

    //service nginx stop|start|restart|reload
    touch /etc/init.d/nginx chmod 755 nginx
    vi /etc/init.d/nginx

    红色区域路径,根据自己路径修改。修改后可以service nginx stop|start|restart|reload

    #!/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="/usr/sbin/nginx"
    prog=$(basename $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:.*--user=" | sed 's/[^*]*--user=([^ ]*).*/1/g' -`
       if [ -n "$user" ]; then
          if [ -z "`grep $user /etc/passwd`" ]; then
             useradd -M -s /bin/nologin $user
          fi
          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
        fi
    }
    
    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

     php-fpm启动脚本

    service php-fpm stop|start|restart|reload

    内容如下

    #! /bin/sh  
      
    ### BEGIN INIT INFO  
    # Provides:          php-fpm  
    # Required-Start:    $remote_fs $network  
    # Required-Stop:     $remote_fs $network  
    # Default-Start:     2 3 4 5  
    # Default-Stop:      0 1 6  
    # Short-Description: starts php-fpm  
    # Description:       starts the PHP FastCGI Process Manager daemon  
    ### END INIT INFO  
      
    prefix=/usr/local/php
    exec_prefix=${prefix}  
      
    php_fpm_BIN=${exec_prefix}/sbin/php-fpm  
    php_fpm_CONF=${prefix}/etc/php-fpm.conf  
    php_fpm_PID=${prefix}/var/run/php-fpm.pid  
    php_config=${prefix}/lib/php.ini
      
      
    php_opts="-c $php_config --fpm-config $php_fpm_CONF --pid $php_fpm_PID"  
      
      
    wait_for_pid () {  
        try=0  
      
        while test $try -lt 35 ; do  
      
            case "$1" in  
                'created')  
                if [ -f "$2" ] ; then  
                    try=''  
                    break  
                fi  
                ;;  
      
                'removed')  
                if [ ! -f "$2" ] ; then  
                    try=''  
                    break  
                fi  
                ;;  
            esac  
      
            echo -n .  
            try=`expr $try + 1`  
            sleep 1  
      
        done  
      
    }  
      
    case "$1" in  
        start)  
            echo -n "Starting php-fpm "  
      
            $php_fpm_BIN --daemonize $php_opts  
      
            if [ "$?" != 0 ] ; then  
                echo " failed"  
                exit 1  
            fi  
      
            wait_for_pid created $php_fpm_PID  
      
            if [ -n "$try" ] ; then  
                echo " failed"  
                exit 1  
            else  
                echo " done"  
            fi  
        ;;  
      
        stop)  
            echo -n "Gracefully shutting down php-fpm "  
      
            if [ ! -r $php_fpm_PID ] ; then  
                echo "warning, no pid file found - php-fpm is not running ?"  
                exit 1  
            fi  
      
            kill -QUIT `cat $php_fpm_PID`  
      
            wait_for_pid removed $php_fpm_PID  
      
            if [ -n "$try" ] ; then  
                echo " failed. Use force-quit"  
                exit 1  
            else  
                echo " done"  
            fi  
        ;;  
      
        status)  
            if [ ! -r $php_fpm_PID ] ; then  
                echo "php-fpm is stopped"  
                exit 0  
            fi  
      
            PID=`cat $php_fpm_PID`  
            if ps -p $PID | grep -q $PID; then  
                echo "php-fpm (pid $PID) is running..."  
            else  
                echo "php-fpm dead but pid file exists"  
            fi  
        ;;  
      
        force-quit)  
            echo -n "Terminating php-fpm "  
      
            if [ ! -r $php_fpm_PID ] ; then  
                echo "warning, no pid file found - php-fpm is not running ?"  
                exit 1  
            fi  
      
            kill -TERM `cat $php_fpm_PID`  
      
            wait_for_pid removed $php_fpm_PID  
      
            if [ -n "$try" ] ; then  
                echo " failed"  
                exit 1  
            else  
                echo " done"  
            fi  
        ;;  
      
        restart)  
            $0 stop  
            $0 start  
        ;;  
      
        reload)  
      
            echo -n "Reload service php-fpm "  
      
            if [ ! -r $php_fpm_PID ] ; then  
                echo "warning, no pid file found - php-fpm is not running ?"  
                exit 1  
            fi  
      
            kill -USR2 `cat $php_fpm_PID`  
      
            echo " done"  
        ;;  
      
        *)  
            echo "Usage: $0 {start|stop|force-quit|restart|reload|status}"  
            exit 1  
        ;;  
      
    esac  
  • 相关阅读:
    《Java并发编程实战》笔记-Happens-Before规则
    《Java并发编程实战》笔记-非阻塞算法
    《Java并发编程实战》笔记-锁与原子变量性能比较
    《Java并发编程实战》笔记-OneValueCache与原子引用技术
    《Java并发编程实战》笔记-状态依赖方法的标准形式
    《Java并发编程实战》笔记-synchronized和ReentrantLock
    力奋github:https://github.com/birdstudiocn
    275. H-Index II
    410. Split Array Largest Sum
    88. Merge Sorted Array
  • 原文地址:https://www.cnblogs.com/qq917937712/p/9112550.html
Copyright © 2011-2022 走看看