Ich bin neu in Linux und habe mich mit einer Amazon Lightsail-Instanz (Ubuntu 16.04 LTS) getestet.
Bei der Durchsicht der vielen Anleitungen, auf die ich gestoßen bin, sehe ich Leute, die verschiedene Befehle verwenden, um einen Dienst zu starten / anzuhalten / neu zu starten / neu zu laden / den Status zu überprüfen. Speziell diese;
sudo systemctl status apache2.service
sudo /bin/systemctl status apache2.service
sudo /etc/init.d/apache2 status
sudo service apache2 status
Alle oben genannten Befehle funktionieren.
- Sollte ich einen Befehl dem anderen vorziehen?
- Wenn ja, warum dann?
- Gibt es noch andere Befehle, die ich beachten muss?
Die Verwendung von init.d in Monit verursachte Probleme, als ich die Statusoption verwenden wollte (Status ist, dass der Dienst offline ist, als er tatsächlich online war - von Monit neu gestartet). Ändern Sie den Code in Monit von inid.d in / bin / systemctl und korrigieren Sie ihn.
Es scheint, dass die Verwendung von init.d mehr Informationen darüber liefert, was bei den anderen passiert ist. Wenn ich einen der anderen Befehle verwenden sollte, können sie weitere Informationen darüber anzeigen, was getan wurde?
ubuntu@ip-172-26-12-245:~$ sudo systemctl restart pure-ftpd.service
ubuntu@ip-172-26-12-245:~$ sudo /bin/systemctl restart pure-ftpd.service
ubuntu@ip-172-26-12-245:~$ sudo /etc/init.d/pure-ftpd restart
[ ok ] Restarting pure-ftpd (via systemctl): pure-ftpd.service.
ubuntu@ip-172-26-12-245:~$ sudo service pure-ftpd restart
ubuntu@ip-172-26-12-245:~$
Ich möchte mich im Voraus bei allen bedanken, die sich die Zeit genommen haben, diese Frage zu lesen und zu beantworten.
systemctl
ist die bevorzugte Syntax und service
wird aus Gründen der Abwärtskompatibilität bereitgestellt. /etc/init.d/pure-ftpd
o.ä. rufen die Start / Stopp-Skripte direkt auf.