皆さんこんにちわ。
ディーネットの浜田です。
今回はCentOS7系でのApacheの再読み込みコマンドについて触れてみたいと思います。
目次
CentOS7系でのApacheの再読み込みコマンドについて
再読み込みコマンド
Apacheの再起動及び再読み込みをする際に使われるものとして代表的なコマンドは
以下の二つがあります。
systemctl
apachectl
どちらでもサービスを再起動する場合はrestartで実行することには変わりません。
しかし、再読み込みの場合は
「systemctl reload httpd.service」
と
「apachectl graceful」
にて実行となります。
では、この2つの再読み込みコマンドに違いはあるのでしょうか。
「systemctl status httpd」について
# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2020-08-03 17:04:38 JST; 21s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 1484 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
Main PID: 1469 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
tq1469 /usr/sbin/httpd -DFOREGROUND
tq1485 /usr/sbin/httpd -DFOREGROUND
tq1486 /usr/sbin/httpd -DFOREGROUND
tq1487 /usr/sbin/httpd -DFOREGROUND
tq1488 /usr/sbin/httpd -DFOREGROUND
mq1489 /usr/sbin/httpd -DFOREGROUND
上記はsystemctlの設定です。
中を見ると、「ExecReload=/usr/sbin/httpd $OPTIONS -k graceful」と書いているのがわかります。
「/usr/sbin/apachectl」について
次にapachectlについてですが「/usr/sbin/apachectl」を見てみましょう。
graceful)
/usr/bin/systemctl reload httpd.service
ERROR=$?
;;
上はapachectlのスクリプトの一部です。
ここから、「apachectl graceful」は「/usr/bin/systemctl reload httpd.service」を実行していることがわかります。
そのため、「systemctl reload httpd.service」と「apachectl graceful」は動作的に同じであることがわかります。
CentOS8系では
ちなみに余談ですが、CentOS8系も以下のように同じ仕様になっています。
[Unit]
Description=The Apache HTTP Server
Wants=httpd-init.service
After=network.target remote-fs.target nss-lookup.target httpd-init.service
Documentation=man:httpd.service(8)
[Service]
Type=notify
Environment=LANG=C
ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
# Send SIGWINCH for graceful stop
KillSignal=SIGWINCH
KillMode=mixed
PrivateTmp=true
[Install]
WantedBy=multi-user.target
ここから変わる通り、Cent7系と一緒です。
デフォルトの場合はCent7系がApache2.4.6、Cent8系が2.4.37なので、Apache2.4では共通だと思います。
今回はCentOS7系でのApacheの再読み込みコマンドの動作について、さっくりとご紹介しました。
ではまた!
自称中堅のサーバエンジニアです。
過去にサーバ構築部門にいましたが今は保守チーム