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
View Code

相关文章:

  • 2021-06-28
  • 2021-12-27
  • 2022-01-11
  • 2021-12-11
  • 2022-12-23
  • 2021-10-12
猜你喜欢
  • 2022-12-23
  • 2022-02-10
  • 2021-10-21
  • 2021-12-25
  • 2022-12-23
  • 2022-02-19
相关资源
相似解决方案