php-fpm的启动脚本

2023-06-08,,

# master 进程可以理解以下信号
# 2) SIGINT   立刻终止
#15) SIGTERM 立刻终止
# 3) SIGQUIT 平滑终止
#10) SIGUSR1 重新打开日志文件 
#12) SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制程序。
[root@node2 ~]# ps aux | grep "php-fpm: master"
root      3591  0.0  0.9  47244  2472 ?        Ss   19:56   0:00 php-fpm: master process (/usr/local/php5//etc/php-fpm.conf)
[root@node2 ~]# kill -10 3591
[root@node2 ~]# tail -1 /usr/local/php5/var/log/php-fpm.log
[09-May-2014 20:17:13] NOTICE: log file re-opened  #重新打开日志文件。
#修改配置文件 /usr/local/php5/etc/php-fpm.conf 
[root@node2 ~]# kill -12 3591  # 重新加载配置文件
[root@node2 ~]# tail  /usr/local/php5/var/log/php-fpm.log
[09-May-2014 20:45:20] NOTICE: Reloading in progress ...
[09-May-2014 20:45:20] NOTICE: reloading: execvp("/usr/local/php5/sbin/php-fpm", {"/usr/local/php5/sbin/php-fpm"})
[09-May-2014 20:45:20] NOTICE: using inherited socket fd=8, "127.0.0.1:9000"
[09-May-2014 20:45:20] NOTICE: using inherited socket fd=8, "127.0.0.1:9000"
[09-May-2014 20:45:20] NOTICE: fpm is running, pid 4274
[09-May-2014 20:45:20] NOTICE: ready to handle connections
###################################################################### 根据以上分析 php-fpm 启动脚本如下:
#!/bin/bash
#chkconfig: 3  94  6
#description: FastCGI Process
. /etc/rc.d/init.d/functions
prog="/usr/local/php5/sbin/php-fpm"
conf="/usr/local/php5/etc/php-fpm.conf"
RETVAL=0
lockfile="/var/lock/subsys/php-fpm"
pidfile="/var/run/php-fpm.pid" 
 #修改php-fpm 配置文件,改变pidfile 文件的存放目录。
start() {
     echo -n $"Starting php-fpm: "
     $prog -t &>2 /dev/null
     [ $? -ne 0 ] && exit 1
     daemon --user=root --pidfile="$pidfile" $prog  
             # 以root 用户身份运行 master 进程,
     RETVAL=$?
     echo
     [ $RETVAL = 0 ] && touch ${lockfile}
         #注意:这里不需要*** pidfile 文件。否则会报错。
    #[10-May-2014 07:22:20] ERROR: unlink
    #("/usr/local/php5//var/run/php
    #-fpm.pid") failed: No such file or directory 
     return $RETVAL
}
stop() {
     echo -n $"Stopping php-fpm: "
     killproc -p ${pidfile}  $prog -3
     RETVAL=$?
     echo
     [ $RETVAL = 0 ] && rm -f  ${lockfile}  
}
reload() {
     echo -n $"Reloading php-fpm: "
     if ! $prog -t >& /dev/null ; then
        echo $"not reloading due to configuration syntax error"
        exit 1
     else
        killproc -p ${pidfile} $prog -12
        RETVAL=$?
     fi
     echo
}
case "$1" in
     start)
           start
           ;;
     stop)
          stop
          ;;
     restart)
          stop
          start
          ;;
     status)
          status $prog
          RETVAL=$?
          ;;
     reload)
          reload
          ;;
     configtest)
          $prog -t
          ;;
     *)
          echo $"Usage: php-fpm {start|stop|status|restart|reload|configtest"
         RETVAL=2
esac
exit $RETVAL

 

《php-fpm的启动脚本.doc》

下载本文的Word格式文档,以方便收藏与打印。