私は systemd を導入した Debian 8 を使い始めたばかりです。SysV と systemd をめぐる政治的論争には興味がありませんが、特に Apache (2.4) に関しては混乱しています。
Apache を再起動する方法は 2 つあります。
apache2ctl restart
またはapache2ctl graceful
systemctl restart apache2
そして、それはsystemctl restart apache2.service
同じことをするようです。
そして、それらは異なることをしているように見えます(!)。その違いがわかりません。
完全な再起動を適切に行うには、両方を実行する必要があるようです。たとえば、php モジュールの設定ファイルを変更した後、両方の変更のみが記録されます。
apache2ctl configtest
が失敗し、失敗が で報告された別のときsystemctl status apache2
、これらのコマンドの最初のものがうまくいくように構成を修正し、 で再起動しましたapache2ctl restart
が、systemd status コマンドでは、まだ実行されていないと表示され、古い構成の問題がありました。
いつか systemd (RTFM) について詳細に読むのに長い時間を費やすことを約束しますが、その間、Apache に関連する実用的なレベルでアドバイスをいただければ幸いです。
答え1
一貫性が必要な場合は、常に、、を使用してください。systemctl
これにより、現時点ではスクリプト経由でプログラムが使用されることになりますが、将来的にはネイティブユニット ファイルから使用される可能性があります。stop
start
restart
apache2ctl
/etc/init.d/apache2
systemd
systemd
直接使用したかどうかはわかりません。その結果、実際には正常に動作しているにもかかわらず、まだ障害のある状態であると考えられるapache2ctl
状況が発生する可能性があります (ご存じのとおり)。systemd
apache2
configtest
およびにstatus
は を使用しますapache2ctl
。これらは、Apache の状態を変更せずに、Apache にクエリを実行するだけです。