Как перезапустить php-fpm внутри контейнера докера?

Я использую Docker, и мой контейнер построен на php: 5.6-fpm image fromphp официальный репо, Возможно ли как-то перезапустить / перезагрузить php-fpm изнутри контейнера?

Ответы на вопрос(3)

php-fpm это менеджер процессов, который поддерживает сигнал USER2, который используется для перезагрузки файла конфигурации.

Изнутри контейнера:

kill -USR2 1

За пределами:

docker exec -it <mycontainer> kill -USR2 1

Полный пример:

docker run -d --name test123 php:7.1-fpm-alpine
docker exec -it test123 ps aux
docker exec -it test123 kill -USR2 1
docker exec -it test123 ps aux
 Gherman28 июн. 2018 г., 13:43
Что означает 1? Как узнать, какой процесс это убивает?
 Olli D-Metz19 мар. 2019 г., 10:12
Для меня PID 1 не всегда правильный (особенно после того, как убил его один раз). Что помогаетpkill -o -USR2 php-fpm, потому что вариант-o ищет самый старый процесс (мастер) и убивает его.
 Seth19 апр. 2018 г., 10:12
Я должен был использоватьkill -s USR2 1.
 panepeter13 мар. 2018 г., 07:25
Спасибо @Encrico, ты был прав!/bin/bash -c kill -USR2 1 сделал трюк!
 Enrico Stahn14 авг. 2018 г., 09:32
@Gherman1 это идентификатор процесса (PID). Поскольку это единственный процесс, запущенный на этом изображении, он всегда будет 1.
 panepeter12 мар. 2018 г., 08:01
Прекрасно работает, когда я в контейнере. Но звонит если со стороны ошибки:rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"kill\": executable file not found in $PATH"  Есть идеи почему?
 Enrico Stahn12 мар. 2018 г., 22:48
@panepeter Если вы укажете способ его запуска, я мог бы дать больше советов, но в сообщении об ошибке говорится, что он не может найти команду kill в пути. В зависимости от вашего изображения вам нужно запустить его определенным образом, например, / bin / sh -c kill -USR2 1 ... Это мое лучшее предположение без дополнительной информации.

на вашем хостеps -ef|grep fpm // find master pid kill -USR2 <master_pid>

Вы также можете просто перезапустить контейнер.

sudo docker <container> restart

Ваш ответ на вопрос