Ich habe gerade angefangen, Debian 8 zu verwenden, in dem systemd eingeführt wurde. Ich interessiere mich nicht für die Politik rund um SysV vs. systemd, aber ich bin verwirrt, insbesondere in Bezug auf Apache (2.4).
Es gibt nun zwei Möglichkeiten, Apache neu zu starten:
apache2ctl restart
oderapache2ctl graceful
systemctl restart apache2
und es scheint, alssystemctl restart apache2.service
ob es das Gleiche bewirkt.
Und sie scheinen unterschiedliche Dinge zu tun(!). Ich verstehe den Unterschied nicht.
Ich muss anscheinend beides tun, damit ein ordnungsgemäßer vollständiger Neustart funktioniert. Beispielsweise wurde nach dem Ändern einer Konfigurationsdatei für das PHP-Modul die Änderung erst nach beidem vermerkt.
Ein anderes Mal, als apache2ctl configtest
ein Fehler auftrat und der Fehler in gemeldet wurde, systemctl status apache2
habe ich die Konfiguration so korrigiert, dass der erste dieser Befehle funktionierte, mit neu gestartet, apache2ctl restart
aber der Befehl „systemd status“ hat es immer noch als nicht ausgeführt und mit dem alten Konfigurationsproblem aufgelistet.
Ich verspreche, dass ich irgendwann jede Menge Zeit damit verbringen werde, mich eingehend in systemd einzulesen (RTFM), aber in der Zwischenzeit wäre ich für Ratschläge auf praktischer Ebene in Bezug auf Apache dankbar.
Antwort1
Wenn Sie Konsistenz wünschen, verwenden Sie immer systemctl
for stop
, start
, und restart
. Dadurch wird letztendlich das apache2ctl
Programm verwendet – derzeit über das Skript, zukünftig /etc/init.d/apache2
aber wahrscheinlich über eine native Unit-Datei.systemd
systemd
Sie wissen nicht, wann Sie es apache2ctl
direkt verwendet haben, was möglicherweise (wie Sie festgestellt haben) zu einer Situation führt, in der systemd
sich das Programm apache2
noch immer in einem fehlerhaften Zustand befindet, obwohl es eigentlich einwandfrei läuft.
Verwenden Sie für configtest
und . Sie fragen Apache einfach ab, ohne seinen Status zu ändern.status
apache2ctl