如题

环境

  1. CentOS 6
  2. php 5.4
  3. nginx 1.2

重启 php-fpm 命令

php 5.3.3 以后的php-fpm 不再支持 php-fpm (start|stop|reload) 等命令,需要使用信号控制。
kill master 进程,有如下参数:

  1. INT, TERM 立刻终止
  2. QUIT 平滑终止
  3. USR1 重新打开日志文件
  4. USR2 平滑重载所有 worker 进程并重新载入配置和二进制模块

通过 ps aux|grep php-fpm 查看配置文件和 master 进程号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost ~]# ps aux|grep php-fpm
root 2832 0.0 0.2 148364 5432 ? Ss 08:39 0:00 php-fpm: master process (/home/etc/php-5.4.45/php-fpm.conf)
nginx 2833 0.0 0.6 155920 12412 ? S 08:39 0:03 php-fpm: pool www
nginx 2834 0.0 0.7 157256 14616 ? S 08:39 0:04 php-fpm: pool www
nginx 2835 0.0 0.6 155920 12368 ? S 08:39 0:03 php-fpm: pool www
nginx 2836 0.0 0.7 157192 14564 ? S 08:39 0:04 php-fpm: pool www
nginx 2837 0.0 0.6 155920 12360 ? S 08:39 0:06 php-fpm: pool www
nginx 2839 0.0 0.6 155748 12264 ? S 08:39 0:03 php-fpm: pool www
nginx 2840 0.0 0.7 157232 14580 ? S 08:39 0:03 php-fpm: pool www
nginx 2841 0.0 0.7 157256 14916 ? S 08:39 0:04 php-fpm: pool www
nginx 2843 0.0 0.6 155920 12212 ? S 08:39 0:05 php-fpm: pool www
nginx 2844 0.0 0.7 157256 14616 ? S 08:39 0:05 php-fpm: pool www
nginx 3543 0.0 0.7 157260 14608 ? S 08:40 0:03 php-fpm: pool www
nginx 5906 0.0 0.6 153852 12148 ? S 09:50 0:02 php-fpm: pool www
nginx 11528 0.0 0.5 154640 11016 ? S 13:45 0:00 php-fpm: pool www
root 13211 0.0 0.0 63444 800 pts/0 S+ 14:57 0:00 grep php-fpm

从上面可以看到,matster 进程 ID 是 2832,同时能看到,使用的配置文件是/home/etc/php-5.4.45/php-fpm.conf
打开 php-fpm.conf,看以下配置

1
2
3
4
5
[global]
; Pid file
; Note: the default prefix is /opt/soft/php-5.4.45/var
; Default Value: none
pid = /opt/soft/php-5.4.45/php-fpm.pid

php-fpm 重启、关闭

注意,如果配置如上,则可以通过 php-fpm.pid 直接查看到进程ID

1
2
3
[root@localhost ~]# cat /opt/soft/php-5.4.45/php-fpm.pid
2832
[root@localhost ~]# kill -USR2 2832

pid 那一项如果是注释了的,如下:

1
2
3
4
5
[global]
; Pid file
; Note: the default prefix is /opt/soft/php-5.4.45/var
; Default Value: none
;pid = /opt/soft/php-5.4.45/php-fpm.pid

这种配置不会生成 php-fpm.pid 文件,那么需要先通过【ps aux|grep php-fpm】命令查找到 php-fpm master 进程号,该命令在上面已经运行过了,查到 php-fpm 的 master 进程号为 2832

重启 php-fpm

1
kill -USR2 2832

关闭 php-fpm

1
kill -INT 2832