php-fpm 进程管理

2015年2月26日 15:40:15

先查找 PHP-FPM 的进程号

1 ps -ef | grep php-fpm

2 root       900     1  0 Feb12 ?        00:00:39 php-fpm: master process (/usr/local/web/php/etc/php-fpm.conf)

3 nobody     901   900  0 Feb12 ?        00:00:13 php-fpm: pool www

4 nobody     902   900  0 Feb12 ?        00:00:13 php-fpm: pool www

5 nobody    1911   900  0 Feb13 ?        00:00:12 php-fpm: pool www

可以看到主进程的pid是 900

然后用kill命令给这个进程发送重启的信号

kill -SIGUSR2 900

其它的信号:

1 SIGINT, SIGTERM 立刻终止

2 SIGQUIT 平滑终止

3 SIGUSR1 重新打开日志文件

4 SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块

 bash 脚本(根据网上找的脚本,精简后的, 去掉了检测当前pid的grep+awk代码, 建议使用时直接使用restart指令, Mac上可用,但是注意权限)

 0 #!/bin/sh
1
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 2 3 BINFILE="/usr/sbin/php-fpm" 4 CFGFILE="/etc/php-fpm.conf" 5 PIDFILE="/var/run/php-fpm.pid" 6 LOCKFILE="/var/lock/php-fpm.lock" 7 INIFILE="/etc/php.ini" 8 9 RETVAL=0 10 11 start() { 12 [[ -x $BINFILE ]] || exit 5 13 [[ -f $CFGFILE ]] || exit 6 14 15 $BINFILE -t >/dev/null 2>&1 16 17 if [[ $? -ne 0 ]]; then 18 echo "The php-fpm configure has error." 19 return 1 20 fi 21 22 echo "Starting php-fpm......" 23 sudo $BINFILE -c ${INIFILE} -y $CFGFILE -g ${PIDFILE} 24 RETVAL=$? 25 echo "ok~" 26 [[ $RETVAL -eq 0 ]] && touch $LOCKFILE 27 28 return $RETVAL 29 } 30 31 stop() { 32 echo "Shutting down php-fpm......" 33 34 if [[ -f $PIDFILE ]]; then 35 kill -3 `cat ${PIDFILE}` 36 else 37 kill -3 `ps aux | grep php-fpm | awk '/master/{print $2}'` 38 fi 39 40 RETVAL=$? 41 echo "ok~" 42 [[ $RETVAL -eq 0 ]] && sudo rm -f $LOCKFILE $PIDFILE 43 44 return $RETVAL 45 } 46 47 restart() { 48 stop 49 sleep 1 50 51 start 52 sleep 1 53 54 RETVAL=$? 55 return $RETVAL 56 } 57 58 reload() { 59 echo -n $"Reloading php-fpm......" 60 61 if [[ -f $PIDFILE ]]; then 62 kill -USR2 `cat ${PIDFILE}` 63 else 64 kill -USR2 `ps aux | grep php-fpm | awk '/master/{print $2}'` 65 fi 66 67 RETVAL=$? 68 echo "ok~" 69 70 return $RETVAL 71 } 72 73 case "$1" in 74 start) 75 start 76 ;; 77 78 stop) 79 stop 80 ;; 81 82 restart) 83 restart 84 ;; 85 86 reload) 87 reload 88 ;; 89 90 *) 91 echo "Usage: service php-fpm {start|stop|restart|reload}" 92 RETVAL=1 93 esac 94 95 exit $RETVAL

 

你可能感兴趣的:(PHP)