Linux-Distributionen bewegen sich weg von ihren alten System-V-Startprozessen hin zu einem neueren Mechanismus, dem systemd-Daemon und dem zugehörigen systemctl-Befehlszeilentool. Von systemd/systemctl verwaltete Dienste erfordern mindestens eine Konfigurationsdatei, die Start- und Herunterfahrprozesse definiert, eine Typdefinition, die steuert, wie diese Prozesse vom Betriebssystem gehandhabt werden, und alle ausführbaren Dateien, die zum Starten oder Stoppen der Dienstprozesse benötigt werden.
Bei den meisten neuen Distributionen, die das System verwenden, würden wir Prozesse mit dem Befehl systemctl verwalten. Die Linux-Entwickler haben auch die Unterstützung für das Service-Kommando verlassen; Wenn wir versuchen, einen Prozess mit dem Befehl service zu beenden, werden wir sehen, dass er unsere Anfrage tatsächlich an den Befehl systemctl umleitet.
Wenn beim Ausführen eines systemctl-Befehls der folgende Fehler auftritt:
systemctl: command not found
Sie können versuchen, das systemd-Paket entsprechend Ihrer Wahl der Distribution zu installieren.
Verteilung | Befehl |
---|---|
Debian | apt-get install systemd |
Ubuntu | apt-get install systemd |
Arch Linux | pacman -S systemd |
Kali-Linux | apt-get install systemd |
CentOS | yum installiere systemd |
Fedora | dnf install systemd |
Raspbian | apt-get install systemd |
Konfigurationsdateien
- /usr/lib/systemd/system/ :Enthält Standard-Unit-Dateien des Systems.
- /etc/systemd/system :Enthält systemspezifische Parameter, um das Standardverhalten von systemd zu ändern.
- /run/systemd/system/ :Enthält die Laufzeitkonfiguration von Unit-Dateien.
systemctl-Befehlsbeispiele
1. Dienststatus mit systemctl anzeigen:
# systemctl status sshd.service
Status | Beschreibung |
---|---|
Geladen | Gerätekonfigurationsdatei wurde erfolgreich verarbeitet |
Aktiv (läuft) | Läuft mit einem oder mehreren aktiven Prozessen |
Aktiv (beendet) | Eine einmalige Konfiguration erfolgreich abgeschlossen |
Aktiv (wartet) | Laufen und darauf warten, dass ein Ereignis stattfindet |
Inaktiv | Wird derzeit nicht ausgeführt |
Aktiviert | Wird beim Booten gestartet |
Deaktiviert | Wird beim Hochfahren nicht gestartet |
Statisch | Kann nicht direkt aktiviert werden, kann aber automatisch von einer anderen aktivierten Einheit gestartet werden |
2. Zeigt den Status aller verschiedenen Units an, die beim Start aktiv und geladen sind:
# systemctl
3. Zeigt nur den Status von aktiven Serviceeinheiten an:
# systemctl --type=service
oder
# systemctl list-units --type=service
4. Zeigt den Status aller geladenen Serviceeinheiten an, ob aktiv oder inaktiv:
# systemctl --type=service –all
oder
# systemctl list-units --type=service --all
5. Zeigt alle fehlgeschlagenen Dienste an:
# systemctl --failed --type=service
6. Zeigt an, ob der jeweilige Dienst gerade aktiv ist oder nicht:
# systemctl is-active sshd
7. Zeigt an, ob der bestimmte Dienst zum Starten beim Booten aktiviert ist oder nicht:
# systemctl is-enabled sshd
8. Zeigt die aktivierten, deaktivierten oder statischen Einstellungen aller Einheiten des angegebenen Typs an:
# systemctl list-unit-files --type=service
9. Zeigt detaillierte Statusinformationen über den angegebenen Dienst an:
# systemctl status sshd.service -l