web-dev-qa-db-ja.com

Apacheとsystemd

Systemdを導入したDebian 8を使い始めました。私はSysVとsystemdに関する政治には興味がありませんが、特にApache(2.4)に関しては混乱しています。

Apacheを再起動する方法は2つあります。

  1. Apache2ctl restartまたはApache2ctl graceful
  2. systemctl restart Apache2そしてsystemctl restart Apache2.serviceも同じことをしているようです。

そして、彼らは異なることをしているように見えます(!)。違いがわかりません。

適切に完全に再起動するには、両方を実行する必要があるようです。例えばphpモジュールの設定ファイルを変更した後、両方の後にのみ変更が記録されました。

Apache2ctl configtestが失敗し、その失敗がsystemctl status Apache2で報告された別のときに、これらのコマンドの最初が満足できるように構成を修正し、Apache2ctl restartで再起動しましたが、systemd statusコマンドはまだそれをリストしました実行されておらず、古い設定の問題があるため。

私はいつかsystemd(RTFM)について深く読んでいくことを約束しますが、一方でApacheに関連する実用的なレベルでは、助言をいただければ幸いです。

6
artfulrobot

一貫性が必要な場合は、systemctlstopstartには常にrestartを使用してください。これはApache2ctlプログラムを使用することになります-今のところ/etc/init.d/Apache2スクリプトを介しますが、おそらくネイティブのsystemdユニットファイルから将来的には。

systemdは、いつApache2ctlを直接使用したかを認識しません。実際に問題なく実行されているのに、systemdApache2をまだ障害のある状態であると考える状況で(おそらく、ご存じのように)発生する可能性があります。

configtestおよびstatusには、Apache2ctlを使用します。状態を変更せずにApacheにクエリを送信します。

6
cas