小兔网

PHP-fpm的启动,直接执行php-fpm的绝对路径即可。建议打开php配置文件中的pid文件(以方便获取进程id值)。如果把php-fpm写入了服务,也可以使用service php-fpm start或/etc/init.d/php-fpm start来启动。另外php-fpm也可以使用信号控制:php-fpm的master主进程可以理解以下信号:

INT, TERM 立刻终止
QUIT     平滑终止
USR1     重新打开日志文件

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

    测试如下:

[root@kermit ~]# service php-fpm restartGracefully shutting down php-fpm . doneStarting php-fpm  done[root@kermit ~]# php -vPHP 5.3.28 (cli) (built: Jul 21 2016 17:44:48) Copyright (c) 1997-2013 The PHP GroupZend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies    with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies[root@kermit ~]# ps -ef |grep "php-fpm: master process" | grep -v 'grep'  root     18541     1  0 09:35 ?        00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)                                                                    [root@kermit ~]# kill -USR2 18541[root@kermit ~]# ps -ef |grep "php-fpm: master process" | grep -v 'grep'  root     18610     1  0 09:36 ?        00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)                                                                    [root@kermit ~]# service php-fpm statusUsage: /etc/init.d/php-fpm {start|stop|force-quit|restart|reload}[root@kermit ~]# 

 

     我的php版本是5.3.28。使用命令:kill -USR2 18541 平滑重启了php-fpm进程,并生成了新的进程ID。如果打开了pid文件,则可以直接使用cat获取pid文件中的进程ID值,如我下面的php-fpm配置:

[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice

 

    这样就可以直接使用以下命令来操作:

[root@kermit ~]# cat /usr/local/php/var/run/php-fpm.pid18610[root@kermit ~]# kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`[root@kermit ~]# ps -ef |grep "php-fpm: master process" | grep -v 'grep'root     18801     1  0 09:47 ?        00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)                                                                    [root@kermit ~]# 

    注:php5.3.3以后源码中已经内嵌了php-fpm,不用再打php-fpm补丁,只需要在configure的时候添加编译参数 –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-libevent-dir=libevent位置。 
但是,php5.3.3以后的php-fpm不再支持php-fpm以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令。