Apacheの再読み込みコマンドの違いについて

皆さんこんにちわ。

ディーネットの浜田です。

今回は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の再読み込みコマンドの動作について、さっくりとご紹介しました。

ではまた!