2015年7月12日日曜日

"kill"コマンドでPHP-FPMをリロード


DockerのコンテナとしてPHP-FPMを起動している場合、"kill"コマンドで
PHP-FPMをリロードしたいことがあると思います。

やり方は簡単で
kill -USR2 プロセス番号(php-fpm: master process)
でOKです。

実際に試してみます。

PHP-FPMのプロセスはこんな感じです。
# docker exec 77586670e25f ps aux
root        86  0.0  1.2 298316 13192 ?        Ss   Jul10   0:06 php-fpm: master process (/etc/php-fpm.conf)
apache      90  0.0  0.5 298316  5604 ?        S    Jul10   0:00 php-fpm: pool www
apache      91  0.0  0.5 298316  5604 ?        S    Jul10   0:00 php-fpm: pool www
apache      92  0.0  0.5 298316  5604 ?        S    Jul10   0:00 php-fpm: pool www
apache      93  0.0  0.5 298316  5604 ?        S    Jul10   0:00 php-fpm: pool www
apache      94  0.0  0.5 298316  5604 ?        S    Jul10   0:00 php-fpm: pool www

PHP-FPM(php-fpm: master process)のプロセス(86番)を"kill -USR2"します。
# docker exec 77586670e25f kill -USR2 86

すると、次のようにPHP-FPM(php-fpm: pool)のプロセスIDが変更されてることがわかります。
# docker exec 77586670e25f ps aux
root        86  0.0  1.2 298316 13192 ?        Ss   Jul10   0:06 php-fpm: master process (/etc/php-fpm.conf)
apache     138  0.0  0.5 298316  5600 ?        S    02:20   0:00 php-fpm: pool www
apache     139  0.0  0.5 298316  5600 ?        S    02:20   0:00 php-fpm: pool www
apache     140  0.0  0.5 298316  5600 ?        S    02:20   0:00 php-fpm: pool www
apache     141  0.0  0.5 298316  5600 ?        S    02:20   0:00 php-fpm: pool www
apache     142  0.0  0.5 298316  5600 ?        S    02:20   0:00 php-fpm: pool www

PHPのモジュールの追加や設定変更を行った後に、上記を実行することで、
それらを反映することができます。

0 コメント: