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