如何关闭php-fpm进程?

百度了一些方法都不行啊。

明明有进程存在,可是用killall停止,提示找不到该进程。

clipboard.png

netstat -napo |grep "php-fpm" | wc -l

这样的话显示的是0

clipboard.png

kill -INT `cat /usr/local/php/var/run/php-fpm.pid`

找不到这个pid文件

clipboard.png

PHP-FPM的位置,需要新建一个php-fpm.pid文件? 刚用LINUX,还望各位大神帮忙。

clipboard.png

--更新----------------------

php -v的结果。 5.3.28是我编译安装的。
clipboard.png

而,php-fpm -v显示的PHP版本是5.4.这里是不是也有问题? 所以我想先停掉当前运行的PHP-FPM,然后试试运行PHP 5.3里的PHP-FPM.

现在打开PHP测试页显示502

clipboard.png

阅读 23.1k
5 个回答

因为你是编译的,可以在源码中复制php-fpm的init文件到系统中:

cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

然后就可以使用以下命令启动、停止、重启和重新加载php-fpm了:

service php-fpm start
service php-fpm restart
service php-fpm stop
service php-fpm reload

全手工编译LNMP架构服务器的过程可以参考我的文章:
Centos7编译安装与配置LNMP架构web服务器

极端的方法就是你用的killall,当出现以下内容,则表示所有php-fpm进程都被kill掉了:

[root@test ~]# killall php-fpm
php-fpm: no process found

我建议在php-fpm下为每个站点都启动独立的进程,同时使用不同的用户和组以提高安全性。启动之后是这样的:
图片描述

当使用ps查看时,是这样的:

[root@web ~]# ps -aux | grep php
root      1575  0.0  0.0 246668  7100 ?        Ss   Apr13   0:08 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
mysqltc+  1577  0.0  0.0 246660  6712 ?        S    Apr13   0:00 php-fpm: pool mysqltcom
root      4318  0.0  0.0 112652   960 pts/1    S+   01:12   0:00 grep --color=auto php
zabbixt+ 18183  0.0  0.1 252160 15888 ?        S    Apr15   0:04 php-fpm: pool zabbixtcom
zabbixt+ 19337  0.0  0.1 252136 15780 ?        S    Apr15   0:01 php-fpm: pool zabbixtcom

所以你使用killall的方法是正确的:

[root@test ~]# killall php-fpm

你的php-fpm并没有启动起来,你搜到的是grep这个命令的pid

/usr/local/php5/sbin/php-fpm stop

zhgxun-pro:~ zhgxun$ sudo php-fpm
Password:
zhgxun-pro:~ zhgxun$ ps aux | grep php-fpm
_www              810   0.0  0.0  2584148   1252   ??  S     8:53AM   0:00.00 php-fpm
root              809   0.0  0.0  2574932   1648   ??  Ss    8:53AM   0:00.00 php-fpm
zhgxun            814   0.0  0.0  2432804   1952 s000  R+    8:53AM   0:00.00 grep php-fpm
_www              811   0.0  0.0  2585172   1292   ??  S     8:53AM   0:00.00 php-fpm
zhgxun-pro:~ zhgxun$ sudo kill 809
zhgxun-pro:~ zhgxun$ sudo kill 809
kill: 809: No such process
zhgxun-pro:~ zhgxun$ ps aux | grep php-fpm
zhgxun            822   0.0  0.0  2433828   2024 s000  S+    8:53AM   0:00.00 grep php-fpm
zhgxun-pro:~ zhgxun$ 

这个你要注意作为服务器运行的WEB和cli运行的php-fpm。需要注意的是,sudo kill 809的时候一定是进程ID最小的一个。

可以去/etc/init.d/目录下看看有没有php5.4-fpmphp7.0-fpm这种文件,如果有,可以用service php5.4-fpm stop这种方式停掉服务

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题