熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

Nginx和PHP-FPM的啟動/重啟腳本分享

2022-06-13   來源: Java高級技術 
服務器上的Nginx和PHP都是源碼編譯安裝的不像ubuntu一樣有自帶service啟動腳本所以不支持類似以前的nginx (start|restart|stop|reload)了自己動手豐衣足食以下腳本應該在RHEL Fedora CentOS下都適用

Nginx啟動腳本/etc/initd/ps the nginx daemon
#
# chkconfig:  
# description:  Nginx is an HTTP(S) server HTTP(S) reverse proxy and IMAP/POP proxy server
# processname: nginx
# config:      /usr/local/nginx/conf/nginxconf
# pidfile:     /usr/local/nginx/logs/nginxpid
 
# Source function library
/etc/rcd/initd/functions
 
# Source networking configuration
/etc/sysconfig/network
 
# Check that networking is up
[ "$NETWORKING" = "no" ] && exit
 
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/usr/local/nginx/conf/nginxconf"
 
[ f /etc/sysconfig/nginx ] && /etc/sysconfig/nginx
 
lockfile=/var/lock/subsys/nginx
 
start() {
    [ x $nginx ] || exit
    [ f $NGINX_CONF_FILE ] || exit
    echo n $"Starting $prog: "
    daemon $nginx c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval eq ] && touch $lockfile
    return $retval
}
 
stop() {
    echo n $"Stopping $prog: "
    killproc $prog QUIT
    retval=$?
    echo
    [ $retval eq ] && rm f $lockfile
    return $retval
}
 
restart() {
    configtest || return $?
    stop
    sleep
    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 >&
}
 
case "$" in
    start)
        rh_status_q && exit
        $
        ;;
    stop)
        rh_status_q || exit
        $
        ;;
    restart|configtest)
        $
        ;;
    reload)
        rh_status_q || exit
        $
        ;;
    forcereload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|tryrestart)
        rh_status_q || exit
            ;;
    *)
        echo $"Usage: $ {start|stop|status|restart|condrestart|tryrestart|reload|forcereload|configtest}"
        exit
esac

編輯好後保存執行以下命令

 代碼如下 復制代碼 sudo chmod +x /etc/initd/nginx
sudo /sbin/chkconfig nginx on
# 檢查一下
sudo /sbin/chkconfig list nginx
nginx           :off   :off   :on    :on    :on    :on    :off

完成!可以使用以下命令管理Nginx了

 代碼如下 復制代碼 service nginx start
service nginx stop
service nginx restart
service nginx reload
 
/etc/initd/nginx start
/etc/initd/nginx stop
/etc/initd/nginx restart
/etc/initd/nginx reload

PHPFPM啟動腳本/etc/initd/phpfpm

 代碼如下 復制代碼 #!/bin/bash
#
# Startup script for the PHPFPM server
#
# chkconfig:
# description: PHP is an HTMLembedded scripting language
# processname: phpfpm
# config: /usr/local/php/etc/phpini
 
# Source function library
/etc/rcd/initd/functions
 
PHP_PATH=/usr/local
DESC="phpfpm daemon"
NAME=phpfpm
# phpfpm路徑
DAEMON=$PHP_PATH/php/sbin/$NAME
# 配置文件路徑
CONFIGFILE=$PHP_PATH/php/etc/phpfpmconf
# PID文件路徑(在phpfpmconf設置)
PIDFILE=$PHP_PATH/php/var/run/$NAMEpid
SCRIPTNAME=/etc/initd/$NAME
 
# Gracefully exit if the package has been removed
test x $DAEMON || exit
 
rh_start() {
  $DAEMON y $CONFIGFILE || echo n " already running"
}
 
rh_stop() {
  kill QUIT `cat $PIDFILE` || echo n " not running"
}
 
rh_reload() {
  kill HUP `cat $PIDFILE` || echo n " cant reload"
}
 
case "$" in
  start)
        echo n "Starting $DESC: $NAME"
        rh_start
        echo ""
        ;;
  stop)
        echo n "Stopping $DESC: $NAME"
        rh_stop
        echo ""
        ;;
  reload)
        echo n "Reloading $DESC configuration"
        rh_reload
        echo "reloaded"
  ;;
  restart)
        echo n "Restarting $DESC: $NAME"
        rh_stop
        sleep
        rh_start
        echo ""
        ;;
  *)
         echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&
         exit
        ;;
esac
exit

編輯好後保存執行以下命令

 代碼如下 復制代碼 sudo chmod +x /etc/initd/phpfpm
sudo /sbin/chkconfig phpfpm on
# 檢查一下
sudo /sbin/chkconfig list phpfpm
phpfpm           :off   :off   :on    :on    :on    :on    :off

完成!可以使用以下命令管理phpfpm了

 代碼如下 復制代碼

service phpfpm start
service phpfpm stop
service phpfpm restart
service phpfpm reload
 
/etc/initd/phpfpm start
/etc/initd/phpfpm stop
/etc/initd/phpfpm restart
/etc/initd/phpfpm reload



From:http://tw.wingwit.com/Article/program/Java/gj/201405/30815.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.