一般的に運用中のApacheを再起動する場合、restart
ではなくgraceful
を使用すると思います。
CentOS7のパッケージ版のApacheはSystemdによりサービス管理がされていますが、graceful
が使えない・・
[root@wasabi] ~
# systemctl graceful httpd.service
Unknown operation \'graceful\'.
Systemd管理下のApacheでgracefulに準じるオプションはないか確認しました。
CentOS7のSystemdは/usr/lib/systemd/system 以下に各サービス・デーモンの定義ファイルが置かれています。
[root@wasabi] ~
# cat /usr/lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH ${MAINPID}
# We want systemd to give httpd some time to finish gracefully, but still want
# it to kill httpd after TimeoutStopSec if something went wrong during the
# graceful stop. Normally, Systemd sends SIGTERM signal right after the
# ExecStop, which would kill httpd. We are sending useless SIGCONT here to give
# httpd time to finish.
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
これによると、systemctl reload httpd.service
という感じでreload
を使えばよいようです。