Dieser Artikel beschreibt, wie Sie Dienste mithilfe von systemd verwalten .
Einführung
Viele moderne Linux®-Betriebssysteme, die bei Rackspace erhältlich sind, wie Centos® 7 und höher und Ubuntu® 16.04, haben systemd übernommen als Systemmanager. Vielleicht möchten Sie wissen, wie Sie damit Ihre Anwendungen verwalten können.
Verwenden Sie systemctl
Wenn Sie systemd verwenden Um Anwendungen zu verwalten, verwenden Sie den Befehl systemctl
. Die folgenden Abschnitte beschreiben mehrere Funktionen dieses Befehls.
Dienste starten und stoppen
Verwenden Sie den Befehl systemctl start application.service
um die Anwendung zu starten und den Befehl systemctl stop application.service
um die Anwendung zu stoppen. Wenn Sie nicht wissen, ob ein Dienst ausgeführt wird, können Sie den Befehl systemctl status application.service
verwenden um den Status zu überprüfen, wie im folgenden Beispiel gezeigt:
[root@localhost ~]# systemctl status httpd.service
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:httpd(8)
man:apachectl(8)
[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# systemctl status httpd.service
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2020-05-24 01:30:02 UTC; 1s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 16117 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─16117 /usr/sbin/httpd -DFOREGROUND
├─16118 /usr/sbin/httpd -DFOREGROUND
├─16119 /usr/sbin/httpd -DFOREGROUND
├─16120 /usr/sbin/httpd -DFOREGROUND
├─16121 /usr/sbin/httpd -DFOREGROUND
└─16122 /usr/sbin/httpd -DFOREGROUND
May 24 01:30:02 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
May 24 01:30:02 localhost.localdomain httpd[16117]: AH00558: httpd: Could not reliably determine
the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName'
directive globally to suppress this message
May 24 01:30:02 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
[root@localhost ~]#
Dienste neu starten oder neu laden
Das Neustarten und Neuladen eines Dienstes sind zwei verschiedene Dinge mit systemd .
Wenn Sie den Befehl systemctl restart application.service
ausführen , wird der angegebene Dienst neu gestartet. Wenn sich der Dienst in einem angehaltenen Zustand befindet, wird er gestartet.
Wenn Sie den Befehl systemctl reload application.service
ausführen , die Konfiguration der angegebenen Servicereloads. Wenn Sie beispielsweise Änderungen an einem virtuellen Apache®-Host (vhost) vornehmen und möchten, dass diese Änderungen live gehen, ohne Apache anzuhalten, laden Sie den Dienst neu. Die neuen Konfigurationen erfolgen ohne Unterbrechung des Dienstes.
Dienste aktivieren und deaktivieren
Wenn Sie möchten, dass ein bestimmter Dienst beim Hochfahren des Servers gestartet wird, führen Sie den Befehl systemctl enable application.service
aus . Wenn Sie sicherstellen möchten, dass ein Dienst nicht gestartet wird, wenn der Server hochfährt, führen Sie den Befehl systemctl disable application.service
aus .