Unter Linux spielt systemctl eine zentrale Rolle bei der Ver­wal­tung des Init-Systems und Service-Managers systemd. Mit systemctl haben Be­nut­zen­de die Kontrolle über systemd-Dienste, -Einheiten und -Kon­fi­gu­ra­tio­nen, was es zu einem un­ver­zicht­ba­ren Werkzeug für die Sys­tem­ad­mi­nis­tra­ti­on macht. Von der Start­kon­trol­le bis zur Anpassung von Sys­tem­zu­stän­den bietet systemctl eine um­fas­sen­de Palette an Funk­tio­nen.

Was ist systemctl?

systemctl ist ein Kom­man­do­zei­len­werk­zeug zur Ver­wal­tung von systemd, einem Init-System und Sys­tem­ma­na­ger für Linux-Be­triebs­sys­te­me. systemd ist mitt­ler­wei­le das Standard-Init-System bei vielen Linux-Dis­tri­bu­tio­nen bzw. Linux-Server-Dis­tri­bu­tio­nen wie Ubuntu, Debian, Fedora, Red Hat En­ter­pri­se Linux (RHEL), CentOS, Arch Linux, Mageia oder Gentoo, jedoch nicht durch­gän­gig in allen Dis­tri­bu­tio­nen im­ple­men­tiert.

Im systemd-Ökosystem spielt systemctl eine zentrale Rolle bei der Ver­wal­tung von Sys­tem­diens­ten, Kon­fi­gu­ra­ti­on, Start­ver­hal­ten und Sys­tem­war­tung. Die Funk­tio­na­li­tät des Tools geht dabei über das einfache Starten und Beenden von Diensten hinaus und bietet eine um­fas­sen­de Kontrolle über nahezu alle Aspekte eines Linux-Systems.

Im nach­fol­gen­den Tutorial finden Sie prak­ti­sche Code­bei­spie­le und Linux-Befehle zur Ver­wen­dung von systemctl auf Basis von Ubuntu 22.04.

Ver­wal­tung von Diensten

Das primäre Ziel des Init-Systems ist es, die Kom­po­nen­ten zu starten, die nach dem Booten des Linux-Kernels Linux-Kernels benötigt werden („userland“-Kom­po­nen­ten). Darüber hinaus dient das Init-System dazu, Dienste und Daemons auf einem Server zu jedem Zeitpunkt des Sys­tem­laufs effektiv zu steuern.

Innerhalb von systemd kon­zen­trie­ren sich die meisten Prozesse auf so­ge­nann­te Units, also Res­sour­cen, die von systemd verwaltet werden. Diese Units werden nach dem Typ der Ressource, die sie re­prä­sen­tie­ren, klas­si­fi­ziert und durch die so­ge­nann­ten Unit-Dateien definiert. Der Typ einer Unit ist an der Da­tei­endung erkennbar.

Bei der Ver­wal­tung von Diensten stehen speziell die Dienst-Units im Vor­der­grund, die mit dem Suffix .service enden. Häufig ist es bei Dienst­ver­wal­tungs­be­feh­len jedoch nicht nötig, dieses Suffix anzugeben, da systemd in der Lage ist zu erkennen, dass mit diesen Befehlen in der Regel Dienste gemeint sind.

Starten und Anhalten von Diensten

Zu den häu­figs­ten Aufgaben, die unter Linux mit systemctl durch­ge­führt werden, gehören das Starten und Anhalten von Diensten. Diese Funk­tio­nen sind grund­le­gend für die Sys­tem­ver­wal­tung und er­mög­li­chen es, die Kontrolle über die auf einem System laufenden Prozesse zu behalten. Um einen Dienst zu starten, verwenden Sie den Befehl start. Wenn Sie als Be­nut­ze­rin bzw. Benutzer ohne Root-Rechte arbeiten, müssen Sie dabei sudo verwenden:

$ sudo systemctl start application.service
bash

Da systemd darauf ausgelegt ist, au­to­ma­tisch nach .service-Dateien für Dienst­ver­wal­tungs­be­feh­le zu suchen, kann der Befehl auch ver­ein­facht ein­ge­ge­ben werden:

$ sudo systemctl start application
bash

Um bei­spiels­wei­se den Apache-Webserver zu starten, würden Sie eingeben:

$ sudo systemctl start apache2
bash

Wenn Sie einen laufenden Dienst anhalten möchten, verwenden Sie stop:

$ sudo systemctl stop application.service
bash
vServer / VPS
VPS un­schlag­bar günstig auf Dell En­ter­pri­se Servern
  • 1 Gbit/s, un­be­grenzt Traffic & mehr Cores
  • Min­des­tens 99,99% Ver­füg­bar­keit & ISO-zer­ti­fi­zier­te Re­chen­zen­tren
  • Aus­ge­zeich­ne­ter 24/7 Premium-Support mit per­sön­li­chem Berater

Neustart und Neuladen

Um einen Dienst neu zu starten, was oft nach einer Kon­fi­gu­ra­ti­ons­än­de­rung er­for­der­lich ist, verwenden Sie den Befehl restart:

$ sudo systemctl restart application.service
bash

Wenn die ent­spre­chen­de Anwendung in der Lage ist, ihre Kon­fi­gu­ra­ti­ons­da­tei­en ohne Neustart neu zu laden, kann der Befehl reload verwendet werden, um diesen Vorgang zu in­iti­ie­ren:

$ sudo systemctl reload application.service
bash

Wenn Sie unsicher sind, ob ein Dienst die Mög­lich­keit bietet, seine Kon­fi­gu­ra­ti­on neu zu laden, können Sie den Befehl reload-or-restart verwenden. Dieser lädt die Kon­fi­gu­ra­ti­on erneut, falls diese Option un­ter­stützt wird. Sollte das nicht möglich sein, führt der Befehl statt­des­sen einen Neustart des Dienstes durch, um die ak­tua­li­sier­te Kon­fi­gu­ra­ti­on zu über­neh­men.

$ sudo systemctl reload-or-restart application.service
bash

Ak­ti­vie­ren und De­ak­ti­vie­ren von Diensten

Durch das Ak­ti­vie­ren und De­ak­ti­vie­ren von Diensten können Sie festlegen, ob ein Dienst beim Booten des Systems au­to­ma­tisch gestartet werden soll oder nicht. Dies spielt ins­be­son­de­re für die Sys­tem­leis­tung, die Si­cher­heit und das Ma­nage­ment von Ab­hän­gig­kei­ten zwischen ver­schie­de­nen Diensten eine zentrale Rolle. Um einen Dienst so zu kon­fi­gu­rie­ren, dass er beim Sys­tem­start au­to­ma­tisch aus­ge­führt wird, verwenden Sie den Befehl enable:

$ sudo systemctl enable application.service
bash

Indem dieser Prozess aus­ge­führt wird, entsteht ein sym­bo­li­scher Link. Dieser Link verbindet die Kopie der Sys­tem­dienst­da­tei, die üb­li­cher­wei­se unter /lib/systemd/system oder /etc/systemd/system zu finden ist, mit dem Ver­zeich­nis auf der Fest­plat­te, in dem systemd nach Dateien für den Autostart sucht, was in der Regel unter /etc/systemd/system/some_target.target.wants geschieht.

$ sudo systemctl enable application.service
bash

Um zu ver­hin­dern, dass ein Dienst beim Booten au­to­ma­tisch startet, verwenden Sie disable:

$ sudo systemctl disable application.service
bash

Hierdurch wird der sym­bo­li­sche Link gelöscht, der zuvor festlegte, dass der Dienst au­to­ma­tisch starten soll. Achtung: Das bloße Ak­ti­vie­ren eines Dienstes startet diesen nicht sofort in der aktuellen Sitzung. Um den Dienst sofort zu starten und für den au­to­ma­ti­schen Start beim Hoch­fah­ren zu kon­fi­gu­rie­ren, müssen Sie sowohl den start- als auch den enable-Befehl ausführen.

Über­prü­fen des Status von Diensten

Mit systemctl lassen sich de­tail­lier­te In­for­ma­tio­nen über den Status von Diensten anzeigen. Diese Funktion ist besonders nützlich, um den aktuellen Zustand von System- und An­wen­dungs­diens­ten zu über­wa­chen und zu dia­gnos­ti­zie­ren. Für die Über­prü­fung verwenden Sie den Befehl status:

$ systemctl status application.service
bash

Dieser Befehl liefert eine Vielzahl von In­for­ma­tio­nen, darunter den aktuellen Zustand des Dienstes (aktiv, inaktiv, feh­ler­haft etc.), die zuletzt aus­ge­führ­ten Prozesse und Log­mel­dun­gen, die cgroup-Hier­ar­chie und die ersten Pro­to­koll­zei­len.

Um den aktuellen Ak­ti­vi­täts­sta­tus eines Dienstes unter Linux mit systemctl zu über­prü­fen, wird is-active verwendet. Dieser Befehl gibt an, ob ein Dienst aktuell aktiv ist oder nicht:

$ systemctl is-active application.service
bash

Der aktuelle Zustand wird dabei in der Regel mit active angegeben, wenn der Dienst aktiv ist, oder inactive, wenn der Dienst inaktiv ist.

Um zu über­prü­fen, ob ein Dienst so kon­fi­gu­riert ist, dass er beim Sys­tem­start au­to­ma­tisch aktiviert wird, können Sie den Befehl is-enabled nutzen. Dies ist besonders nützlich, um die Start­kon­fi­gu­ra­ti­on von Diensten auf einem Linux-System zu verwalten.

$ systemctl is-enabled application.service
bash

Der Command zeigt an, ob der Dienst aktiviert oder de­ak­ti­viert ist und legt dem­entspre­chend den Exit-Code auf „0“ oder „1“ fest, basierend auf der Rück­mel­dung.

Mit dem Befehl is-failed können Sie zudem über­prü­fen, ob ein be­stimm­ter Dienst einen Feh­ler­sta­tus aufweist:

$ systemctl is-failed application.service
bash

Bei er­folg­rei­cher Aus­füh­rung wird active aus­ge­ge­ben, falls ein Fehler vorliegt failed. Wenn die Einheit ab­sicht­lich gestoppt wurde, kann unknown oder inactive als Antwort er­schei­nen. Ein Exit-Status 0 si­gna­li­siert das Auftreten eines Fehlers, während 1 auf jeden anderen Zustand hinweist.

Übersicht über den Sys­tem­sta­tus

Die bisher vor­ge­stell­ten Befehle kon­zen­trier­ten sich auf das Ma­nage­ment einzelner Dienste, aber sie bieten keinen um­fas­sen­den Einblick in den ge­gen­wär­ti­gen Sys­tem­zu­stand. Es existiert jedoch eine Vielzahl an systemctl-Commands, die genau diese Art von In­for­ma­tio­nen liefern.

list-units ist ein nütz­li­ches Werkzeug, um sich einen Überblick über die aktuellen Units auf Linux zu ver­schaf­fen:

$ systemctl list-units
bash

Wenn Sie den Befehl ausführen, zeigt systemctl eine Liste von Units an, die systemd verwaltet. Die Ausgabe dieser Liste be­inhal­tet ver­schie­de­ne Spalten mit spe­zi­fi­schen In­for­ma­tio­nen über jede Unit. Diese Spalten werden Ihnen angezeigt:

  • UNIT: Der Name der Einheit, oft der Dateiname der ent­spre­chen­den Unit-Datei, z. B. sshd.service für den SSH-Daemon
  • LOAD: Zeigt an, ob die Unit-Datei er­folg­reich geladen wurde; mögliche Werte sind loaded, not-found oder error.
  • ACTIVE: Der Ak­ti­vi­täts­sta­tus der Einheit; dieser kann Werte wie active, inactive, activating oder deactivating annehmen.
  • SUB: Der un­ter­ge­ord­ne­te Ak­ti­vi­täts­sta­tus, der weitere Details zum Zustand der Einheit gibt; z. B. könnte eine active-Einheit einen SUB-Status von running, exited oder failed haben.
  • DE­SCRIP­TI­ON: Eine kurze Be­schrei­bung der Einheit, die oft den Zweck oder die Funk­tio­na­li­tät der Einheit wie­der­gibt

Al­ler­dings zeigt der Befehl stan­dard­mä­ßig nur aktive Einheiten an, weshalb in der Ausgabe die Spalte LOAD ty­pi­scher­wei­se loaded und die Spalte ACTIVE active anzeigt. Mit zu­sätz­li­chen Flags lässt sich systemctl so kon­fi­gu­rie­ren, dass es auch er­wei­ter­te In­for­ma­tio­nen anzeigt. Um z. B. alle von systemd geladenen Einheiten un­ab­hän­gig von ihrem aktuellen Ak­ti­vi­täts­sta­tus an­zu­zei­gen, nutzen Sie das Flag --all:

$ systemctl list-units --all
bash

Die Ausgabe kann weiter ver­fei­nert werden, indem Sie zu­sätz­li­che Flags wie --state= verwenden, um spe­zi­fi­sche Zustände in den Ka­te­go­rien LOAD, ACTIVE oder SUB zu filtern. Wichtig ist dabei, das --all-Flag bei­zu­be­hal­ten, damit auch inaktive Einheiten angezeigt werden:

$ systemctl list-units --all --state=inactive
bash

Mit dem Filter --type= können Sie sich zu­sätz­lich nur bestimmte Arten von Einheiten anzeigen lassen, um z. B. aus­schließ­lich aktive Dienst-Einheiten zu sehen:

$ systemctl list-units --type=service
bash

Auflisten aller Unit-Dateien

Um eine Liste aller Unit-Dateien auf Linux mit systemctl an­zu­zei­gen – inklusive der­je­ni­gen, die systemd nicht versucht hat zu laden –, können Sie list-unit-files verwenden. Dieser Befehl zeigt alle Unit-Dateien an, die systemd bekannt sind, ein­schließ­lich Diensten, Sockets, Targets und mehr.

$ systemctl list-units-files
bash

Der Command zeigt ver­schie­de­ne Zustände von Unit-Dateien an. Diese Zustände geben an, wie die je­wei­li­gen Units kon­fi­gu­riert sind, ins­be­son­de­re in Bezug auf ihr Verhalten beim Sys­tem­start. Die häu­figs­ten Zustände sind:

  • Enabled: Die Unit ist so kon­fi­gu­riert, dass sie au­to­ma­tisch beim Sys­tem­start aktiviert wird.
  • Disabled: Die Unit ist nicht für den au­to­ma­ti­schen Start beim Boot­vor­gang kon­fi­gu­riert.
  • Masked: Die Unit ist voll­stän­dig de­ak­ti­viert, sodass sie nicht manuell oder au­to­ma­tisch gestartet werden kann.
  • Static: Die Unit wird nicht ei­gen­stän­dig gestartet, sondern hängt ty­pi­scher­wei­se von einer anderen Unit ab und wird nur in diesem Kontext gestartet.

Ver­wal­tung von Einheiten

Die Ver­wal­tung von Einheiten ist eine der Haupt­auf­ga­ben von systemctl. Um spe­zi­fi­sche­re In­for­ma­tio­nen über einzelne Einheiten zu erhalten und diese zu verwalten, bietet systemctl eine Reihe von nütz­li­chen Befehlen und Optionen.

Anzeigen einer Unit-Datei

Mit dem Befehl cat können Sie sich den Inhalt einer be­stimm­ten Unit-Datei direkt in der Konsole anzeigen lassen. Um z. B. die Unit-Datei eines Dienstes wie ssh.service anzusehen, geben Sie ein:

$ systemctl cat ssh.service
bash

Anzeigen von Ab­hän­gig­kei­ten

Ab­hän­gig­kei­ten einer be­stimm­ten Einheit lassen sich durch list-dependencies als Baum­struk­tur anzeigen. Der Befehl sieht wie folgt aus:

$ systemctl list-dependencies sshd.service
bash

Stan­dard­mä­ßig werden die Ab­hän­gig­kei­ten für .target-Einheiten angezeigt, die ver­schie­de­ne Sys­tem­zu­stän­de re­prä­sen­tie­ren. Für eine voll­stän­di­ge, rekursive Auf­lis­tung aller Ab­hän­gig­kei­ten nutzen Sie das Flag --all.

Zur Dar­stel­lung um­ge­kehr­ter Ab­hän­gig­kei­ten, also Einheiten, die von der spe­zi­fi­zier­ten abhängen, fügen Sie --reverse zum Befehl hinzu. Zu­sätz­lich er­mög­li­chen die Flags --before und --after, die Ab­hän­gig­kei­ten zu sehen, die vor bzw. nach der be­tref­fen­den Einheit starten.

Maskieren und De­mas­kie­ren von Einheiten

Durch das Maskieren einer Einheit wird diese effektiv de­ak­ti­viert, sodass sie weder manuell noch au­to­ma­tisch gestartet werden kann. Dies wird oft verwendet, um si­cher­zu­stel­len, dass ein Dienst oder eine Einheit nicht ver­se­hent­lich oder au­to­ma­tisch durch Ab­hän­gig­kei­ten gestartet wird. Das Maskieren erfolgt durch Erstellen eines sym­bo­li­schen Links der be­tref­fen­den Unit-Datei zu /dev/null mit dem Befehl mask:

$ sudo systemctl mask nginx.service
bash

Dadurch wird si­cher­ge­stellt, dass der Nginx-Service, solange er im Mas­kie­rungs­mo­dus ist, weder manuell noch au­to­ma­tisch gestartet werden kann.

De­mas­kie­ren hebt den Mas­kie­rungs­zu­stand einer Einheit auf, sodass diese wieder normal gestartet werden kann. Der Befehl zum De­mas­kie­ren lautet unmask:

$ sudo systemctl unmask nginx.service
bash

Be­ar­bei­ten von Unit-Dateien

systemctl verfügt über Optionen, um Unit-Dateien an­zu­pas­sen und zu mo­di­fi­zie­ren. Diese Fähigkeit wurde mit der Version 218 von systemd ein­ge­führt. Wenn Sie den Befehl edit nutzen, wird au­to­ma­tisch eine Unit-Datei der gewählten Einheit zur Be­ar­bei­tung geöffnet:

$ sudo systemctl edit nginx.service
bash

Bei der Be­ar­bei­tung wird eine leere Datei erstellt, um spe­zi­fi­sche An­wei­sun­gen zu einer Unit-De­fi­ni­ti­on hin­zu­zu­fü­gen oder zu ändern. Für jede Einheit, z.B. nginx.service, wird im Ver­zeich­nis /etc/systemd/system ein Un­ter­ord­ner angelegt, der den Namen der Datei mit an­ge­häng­tem .d trägt – in diesem Fall also nginx.service.d.

In diesem Un­ter­ord­ner wird die Datei override.conf erzeugt. Wenn systemd die Einheit lädt, kom­bi­niert es den Inhalt dieser Snippet-Datei mit der ori­gi­na­len Unit-Datei, wobei die An­wei­sun­gen des Snippets Priorität haben. Um die gesamte Unit-Datei zu be­ar­bei­ten, kann das Flag --full verwendet werden:

$ sudo systemctl edit --full nginx.service
bash

Durch --full wird die be­stehen­de Unit-Datei in einem Editor geöffnet, um Mo­di­fi­ka­tio­nen vor­zu­neh­men. Beim Verlassen des Editors speichert das System die be­ar­bei­te­te Datei in /etc/systemd/system.

Um selbst vor­ge­nom­me­ne Än­de­run­gen rück­gän­gig zu machen, können Sie entweder das Kon­fi­gu­ra­ti­ons­ver­zeich­nis .d der Einheit oder die mo­di­fi­zier­te Datei in /etc/systemd/system löschen:

$ sudo rm -r /etc/systemd/system/nginx.service.d
bash

Eine komplett über­ar­bei­te­te Unit-Datei wird mit folgendem Befehl gelöscht:

$ sudo rm /etc/systemd/system/nginx.service
bash

Nach dem Entfernen der Datei oder des Ver­zeich­nis­ses ist es notwendig, systemd neu zu laden, damit es aufhört, auf die ge­lösch­ten Dateien zu verweisen und statt­des­sen wieder auf die sys­tem­ei­ge­ne Kopie zu­rück­greift:

$ sudo systemctl daemon-reload
bash

Anpassen des Sys­tem­zu­stands (Runlevel) mit Zielen

Ziele dienen in systemd primär dazu, ver­schie­de­ne Einheiten zu grup­pie­ren, um spe­zi­fi­sche Sys­tem­zu­stän­de zu rea­li­sie­ren – ähnlich wie Runlevel in anderen Init-Systemen. Die Dateien mit dem Suffix .target fungieren als Ori­en­tie­rungs­punk­te, die den Ver­füg­bar­keits­sta­tus be­stimm­ter Funk­tio­nen anzeigen, sodass Nutzende den ge­wünsch­ten Ge­samt­zu­stand anstatt der einzelnen nötigen Einheiten spe­zi­fi­zie­ren können.

Ein prak­ti­sches Beispiel ist das swap.target, das den Zustand der Swap-Be­reit­schaft markiert. Einheiten, die am Swap-Prozess beteiligt sind, können sich mittels Kon­fi­gu­ra­ti­ons­op­tio­nen wie WantedBy= oder RequiredBy= auf dieses Ziel abstimmen. Einheiten hingegen, die auf Swap an­ge­wie­sen sind, können dies durch Ein­stel­lun­gen wie Wants=, Requires= und After= kenn­zeich­nen, um ihre Ab­hän­gig­keit und Start­rei­hen­fol­ge im Ver­hält­nis zum Swap aus­zu­drü­cken.

Abrufen und Ein­rich­ten des Stan­dard­ziels

Das Abrufen und Ein­rich­ten des Stan­dard­ziels er­mög­licht es, einen Standard-Sys­tem­zu­stand zu bestimmen, den Ihr System beim Start erreichen soll. So finden Sie das Stan­dard­ziel für Ihr System:

$ systemctl get-default
Output
multi-user.target
bash

Wenn Sie das Stan­dard­ziel ändern möchten, verwenden Sie den Command set-default zusammen mit dem Namen des Ziels. Mit folgendem Befehl setzen Sie das Stan­dard­ziel auf graphical.target, wodurch eine grafische Be­nut­zer­ober­flä­che startet:

$ sudo systemctl set-default graphical.target
bash

Auflisten ver­füg­ba­rer Ziele

Um alle auf Ihrem System ver­füg­ba­ren Ziele auf­zu­lis­ten, können Sie folgenden Befehl verwenden:

$ systemctl list-unit-files --type=target
bash

Dies zeigt eine Liste aller auf Ihrem System in­stal­lier­ten Ziel-Unit-Dateien an. Für jedes Ziel werden der Pfad und der aktuelle Status (z. B. aktiviert oder de­ak­ti­viert) angezeigt.

Isolieren von Zielen

Mit isolate lassen sich alle Einheiten ak­ti­vie­ren, die mit einem be­stimm­ten Ziel verbunden sind, und gleich­zei­tig alle anderen, nicht damit ver­bun­de­nen Einheiten stoppen.

Nehmen wir an, Sie arbeiten in einer Umgebung mit dem aktiven graphical.target und möchten auf einen reinen Multi-User-Modus ohne grafische Ober­flä­che wechseln. In diesem Fall können Sie durch Isolieren des multi-user.target das grafische System de­ak­ti­vie­ren. Da das graphical.target von multi-user.target abhängig ist, aber nicht umgekehrt, werden beim Wechsel alle gra­fi­schen Services gestoppt.

Al­ler­dings sollten Sie vor dem Isolieren eines Ziels die damit ver­bun­de­nen Ab­hän­gig­kei­ten über­prü­fen. So vermeiden Sie das un­ge­woll­te Anhalten wichtiger Prozesse.

$ systemctl list-dependencies multi-user.target
bash

Falls Sie die aktiven Einheiten, die Sie bei­be­hal­ten möchten, überprüft haben und damit ein­ver­stan­den sind, können Sie das ge­wünsch­te Ziel isolieren:

$ sudo systemctl isolate multi-user.target
bash

Verwenden von Shortcuts für wichtige Er­eig­nis­se

Es gibt spe­zi­fi­sche Ziele für we­sent­li­che Vorgänge wie das Her­un­ter­fah­ren oder Neu­star­ten des Systems. Unter Linux bietet systemctl jedoch auch prak­ti­sche Ab­kür­zun­gen, die zu­sätz­li­che Funk­tio­nen be­reit­stel­len. Um z. B. das System in den Ret­tungs­mo­dus (Single-User-Modus) zu versetzen, können Sie einfach rescue anstelle von isolate rescue.target verwenden:

$ sudo systemctl rescue
bash

Mit halt können Sie das System anhalten:

$ sudo systemctl halt
bash

Ein voll­stän­di­ges Her­un­ter­fah­ren können Sie mit poweroff einleiten:

$ sudo systemctl poweroff
bash

Mit reboot leiten Sie dagegen einen Neustart ein:

$ sudo systemctl reboot
bash

Diese Befehle in­for­mie­ren ein­ge­logg­te Nut­ze­rin­nen und Nutzer über be­vor­ste­hen­de Er­eig­nis­se, was durch reines Ausführen oder Isolieren des Ziels nicht erreicht wird. Es ist wichtig zu wissen, dass viele Rechner die kürzeren Befehle für diese Aktionen mit systemd ver­knüp­fen, um eine korrekte Aus­füh­rung zu ge­währ­leis­ten.

Für einen Sys­tem­neu­start etwa ist nor­ma­ler­wei­se der folgende Befehl aus­rei­chend:

$ sudo reboot
bash
Zum Hauptmenü