如何在docker容器中重新启动php fpm?

如何在docker容器中重新启动php fpm?,php,docker,Php,Docker,我使用的是docker,我的容器是基于php:5.6-fpm图像构建的。 是否可以从容器中重新启动/重新加载php fpm php fpm是一个支持USER2信号的进程管理器,用于重新加载配置文件 从容器内部: kill -USR2 1 外部: docker exec -it <mycontainer> kill -USR2 1 你不必进入容器内 在你的主人身上 ps-ef | grep fpm//查找主pid 杀死-USR2 您也可以重新启动容器 sudo docker re

我使用的是docker,我的容器是基于php:5.6-fpm图像构建的。
是否可以从容器中重新启动/重新加载php fpm

php fpm是一个支持USER2信号的进程管理器,用于重新加载配置文件

从容器内部:

kill -USR2 1
外部:

docker exec -it <mycontainer> kill -USR2 1

你不必进入容器内

在你的主人身上

ps-ef | grep fpm//查找主pid
杀死-USR2

您也可以重新启动容器

sudo docker restart <container>
sudo docker重启
这对我很有用:

如果命令fpm restart失败,请在Docker容器->www#中运行此命令:


当我在容器中时效果很好。但是从外部调用if时出错:
rpc错误:code=2 desc=oci运行时错误:exec失败:container\u linux.go:247:启动容器进程导致“exec:\“kill\”:在$PATH中找不到可执行文件
知道为什么吗?@panepeter如果您提供运行它的方式,我可以提供更多建议,但错误消息说在路径中找不到kill命令。根据您的映像,您需要以某些方式运行它,例如/bin/sh-c kill-USR2 1。。。这是我最好的猜测,没有进一步的信息。谢谢@Encrico,你是对的<代码>/bin/bash-c kill-usr21成功了!我不得不使用
kill-susr21
。对我来说,PID 1并不总是正确的(特别是在杀死它一次之后)。有帮助的是
pkill-o-USR2 php fpm
,因为选项
-o
搜索最旧的进程(主进程)并将其终止<代码>cd/apps/laradock&docker compose重新启动nginx
sudo docker restart <container>
root@...:/var/www# **ps -ef|grep fpm**  
www-data   160     1  0 10:02 ?        00:00:00 php-fpm: pool www  
www-data   161     1  0 10:02 ?        00:00:00 php-fpm: pool www  
root      1111   170  0 10:04 pts/0    00:00:00 grep --color=auto fpm  

root@...:/var/www# **kill -USR2 170**  

root@...:/home/user/Docker# **docker-compose stop**  
Stopping docker_nginx_1  ... done  
Stopping docker_oracle_1 ... done  

root@...:/home/user/Docker# **docker-compose up -d**  
Starting docker_oracle_1 ... done  
Starting docker_nginx_1  ... done  

root@...:/home/user/Docker# **docker-compose exec oracle bash**

root@...:/var/www# **/etc/init.d/php7.2-fpm restart**  
 * Restarting PHP 7.2 FastCGI Process Manager php-fpm7.2                                          **[ OK ]**