50 % Rabatt auf alle Pläne, begrenzte Zeit. Ab $2.48/mo
7 Min. Lesezeit
Server & Betriebssysteme

Wie man den Fehler systemctl: Command Not Found auf Ubuntu behebt

Nick Silber By Nick Silber 7 Min. Lesezeit Aktualisiert am 20. Feb. 2025
Wie man "systemctl: Befehl nicht gefunden" behebt

Eines der nützlichsten Werkzeuge für Linux-Nutzer, besonders bei modernen Distributionen wie Ubuntu, ist das systemctl-Befehl. Dieses Befehlszeilenprogramm wird typischerweise verwendet, um mit systemd, dem System- und Dienst-Manager, zu interagieren.

Mit diesem Befehl lassen sich Systemdienste verwalten: Status abfragen, starten oder stoppen und den Autostart beim Systemstart aktivieren oder deaktivieren. Praktisch, oder? Wenn der Befehl systemctl jedoch nicht gefunden oder nicht erkannt wird, stoßt ihr auf das folgende Problem: sudo: systemctl: Befehl nicht gefunden Fehler.

Also, sprechen wir über die Bedeutung des Fehlers "systemctl: command not found", die verschiedenen Gründe, warum dieser Fehler auftritt, und wie man diesen Fehler behebt.

Was bedeutet systemctl: Befehl nicht gefunden?

Kurz gesagt bedeutet der Fehler "systemctl: command not found", dass das systemctl-Befehlszeilenprogramm in der aktuellen Umgebung nicht verfügbar oder nicht zugänglich ist. Dies kann auf eine Vielzahl von Gründen zurückzuführen sein, die sich letztendlich entweder darauf zurückführen lassen, dass die Umgebung keine echte Systemumgebung ist, oder darauf, dass das systemd-Paket nicht auf dem System installiert ist.

Das systemd-Paket ist entweder nicht installiert, oder deine Linux-Distribution bzw. -Version verwendet kein systemd, sondern ältere Dienstverwaltungssysteme wie init.d. Eine weitere Möglichkeit: Die PATH-Umgebungsvariable enthält das Verzeichnis, in dem systemctl liegt, nicht - die Shell findet den Befehl also nicht.

Jetzt, da du eine Vorstellung davon hast, was in deinem System falsch sein könnte, was zum Fehler "systemctl: command not found" führt, schauen wir uns an, wie du überprüfen kannst, wo dein Problem liegt und wie du es beheben kannst.

Behebung des systemctl: Befehl nicht gefunden Fehler

In den folgenden Schritten prüfen wir, ob systemd auf deinem System installiert ist und ob systemctl verwendet wird – außerdem ermitteln wir den Pfad von systemctl. Sobald die Ursache des Fehlers klar ist, leiten wir die nötigen Schritte zur Behebung ein.

1. Überprüfen, ob Ihr System systemd verwendet

Da Ubuntu systemctl nur verwendet werden kann, wenn das systemd-Paket installiert ist, prüfen wir zunächst, ob dein System systemd verwenden soll. Führe dazu folgenden Befehl aus:

ps -p 1 -o comm=

Oder überprüfen Sie die systemd-Version mit dem folgenden Befehl:

systemd --version

Wenn die Ausgabe systemd ist, verwendet dein System systemd als Init-System – und systemctl sollte Ubuntu installiert sein. Ist die Ausgabe hingegen init oder ein anderer Prozess-Manager, läuft dein System mit einem alternativen Init-System, und systemctl funktioniert erst nach einer Migration zu systemd.

Wenn auf deinem System noch ein älteres Init-System wie Upstart oder SysVinit läuft und du zu systemd wechseln möchtest, um systemctl nutzen zu können, gehe wie folgt vor:

1. Installiere systemctl, indem du systemd mit folgendem Befehl installierst:

sudo apt install systemd-sysv

2. Starte dein System neu, indem du diesen Befehl ausführst:

sudo reboot

3. Überprüfe, ob dein System jetzt systemd verwendet:

ps -p 1 -o comm=

Die Ausgabe sollte jetzt systemd sein.

2. Korrekte Installation von systemd prüfen

Wenn systemd installiert ist und als Init-System läuft, sollte der Befehl systemctl normal funktionieren. Ist das nicht der Fall, fehlt das systemd-Paket entweder oder ist fehlerhaft installiert.

Hinweis: Bei einer minimalen Version von Ubuntu, zum Beispiel in einem Docker-Container oder einer Cloud-Instanz, ist systemd möglicherweise nicht standardmäßig installiert. Um systemctl über die systemd-Installation zu installieren, führen Sie folgende Befehle aus:

sudo apt update
sudo apt install systemd

Nach der Installation prüfen Sie, ob der Befehl systemctl verfügbar ist.

3. Den PATH von systemctl prüfen

Ein häufiger Grund für den Fehler "systemctl not found" ist, dass systemctl zwar installiert ist, aber nicht im PATH des Systems eingetragen wurde. Mit dem folgenden Befehl können Sie prüfen, ob systemd-Binärdateien in typischen Verzeichnissen wie /bin, /usr/bin oder /usr/local/bin vorhanden sind:

which systemctl

Wenn systemctl in einem der im PATH aufgeführten Verzeichnisse gefunden wird, sieht die Ausgabe etwa so aus:

/usr/bin/systemctl

Wenn systemctl in keinem der PATH-Verzeichnisse gefunden wird, gibt der Befehl which keine Ausgabe zurück.

Allerdings kann systemctl trotzdem nicht funktionieren, auch wenn es in einem Ihrer Verzeichnisse gefunden wurde. Der Grund: systemctl könnte sich in einem Verzeichnis befinden, das nicht im PATH eingetragen ist. In diesem Fall müssen Sie mit folgendem Befehl prüfen, ob das Verzeichnis, in dem systemctl liegt, Teil Ihres Systems ist:

echo $PATH

Die Ausgabe sollte in etwa so aussehen:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Prüfen Sie jetzt, ob das Verzeichnis, in dem systemctl liegt (aus der Ausgabe des which-Befehls), in den Verzeichnissen aus der Ausgabe des Befehls echo $PATH enthalten ist.

Wenn das Verzeichnis von systemctl nicht in der Ausgabe von echo $PATH erscheint, müssen Sie es zur PATH-Variable hinzufügen. Führen Sie dazu folgenden Befehl aus:

Bei der Bash-Shell-Nutzer, öffnen Sie die Datei ~/.bashrc in einem Texteditor:

nano ~/.bashrc

Fügen Sie am Ende der Datei folgende Zeile hinzu:

export PATH=$PATH:/usr/bin

/usr/bin ist in diesem Beispiel das typische Verzeichnis, in dem systemctl zu finden ist.

Speichern und schließen Sie die Datei mit CTRL + X, dann Y zur Bestätigung und Enter zum Speichern.

Bei der Zsh-Benutzer, öffnen Sie die Datei ~/.zshrc in einem Texteditor:

nano ~/.zshrc

Fügen Sie am Ende der Datei folgende Zeile hinzu:

export PATH=$PATH:/usr/bin

/usr/bin ist in diesem Beispiel das typische Verzeichnis, in dem systemctl zu finden ist.

Speichern und schließen Sie die Datei mit CTRL + X, dann Y zur Bestätigung und Enter zum Speichern.

Wenn Sie die obigen Schritte abgeschlossen haben, verwenden Sie den Befehl echo $PATH, um zu prüfen, ob das systemctl-Verzeichnis zu Ihrem PATH hinzugefügt wurde. Danach sollten Sie systemctl ausführen können, ohne den Fehler "systemctl: command not found" zu erhalten.

4. Neuinstallation von systemd

Wenn die bisherigen Lösungen nicht helfen und der Fehler weiterhin auftritt, kann eine vollständige Neuinstallation von systemd das Problem beheben. Führen Sie dazu folgende Befehle aus:

sudo apt purge systemd
sudo apt install systemd

Starten Sie anschließend Ihr System mit diesem Befehl neu:

sudo reboot

Prüfen Sie, ob systemctl jetzt funktioniert.

5. Konfiguration von systemd prüfen

Manchmal liegt das Problem schlicht an einer fehlerhaften systemd-Konfiguration, die den Fehler "systemctl: command not found" verursacht. Um das zu beheben, genügt folgender Befehl:

sudo dpkg-reconfigure systemd

6. Veraltetes Windows-Subsystem für Linux (WSL)

Falls Sie Ubuntu unter WSL (Windows Subsystem für Linux) Du solltest wissen, dass ältere WSL-Versionen wie WSL 1 systemctl nicht nativ unterstützen. Egal welche der oben genannten Lösungen du verwendest, systemctl lässt sich dort nicht ausführen.

Wenn du die Funktionen von systemctl nutzen möchtest, musst du auf WSL 2 upgraden, das systemd besser unterstützt. Falls du nicht sicher bist, welche WSL-Version du verwendest, kannst du das mit folgendem Befehl prüfen:

uname -a

Wenn die Ausgabe WSL erwähnt, dann ist das der Grund, warum der Fehler "systemctl: command not found" angezeigt wird.

7. sudo service als Alternative zu systemctl verwenden

Wenn Sie auf den Fehler "systemctl: command not found" stoßen, weil Ihr System systemd nicht verwendet, können Sie den Befehl sudo service verwenden, um Dienste zu verwalten. Dieser Befehl funktioniert mit älteren Init-Systemen wie SysVinit oder Upstart. Dies ist nützlich für Ubuntu-Systeme, die auf Init-Skripte anstelle von systemd angewiesen sind.

Um beispielsweise einen Dienst zu starten, führen Sie folgenden Befehl aus:

sudo service <service_name> start

Fazit

systemd und das zugehörige Kommandozeilenwerkzeug systemctl haben ältere Init-Systeme wie SysVinit und Upstart weitgehend abgelöst. Zugegeben: systemd ist wegen seines monolithischen Designs und der Abkehr von der Unix-Philosophie nicht jedermanns Sache – trotzdem gilt es heute als das am weitesten verbreitete Init-System. Wenn Sie die Schritte in diesem Artikel befolgt haben, sollte der Fehler «systemctl nicht verfügbar» inzwischen behoben sein. Ohne ein funktionierendes systemctl lassen sich die Möglichkeiten von systemd kaum ausschöpfen.

Häufig gestellte Fragen

Was ist systemctl und Was bedeutet systemctl: Command Not Found?

systemctl ist ein Befehlszeilentool, das zur Verwaltung von Diensten in Linux-Systemen mit systemd verwendet wird, beispielsweise Ubuntu. Der Fehler "systemctl: command not found" tritt auf, wenn das Tool nicht verfügbar oder nicht erreichbar ist, normalerweise weil das System systemd nicht verwendet oder das systemd-Paket nicht installiert ist.

Ist systemctl in allen Versionen von Ubuntu verfügbar?

Nein, systemctl ist nicht in allen Versionen von Ubuntu verfügbar. systemctl gehört zum systemd-Init-System, das ab Ubuntu 15.04 standardmäßig verwendet wird. Ältere Versionen oder bestimmte Minimalinstallationen nutzen möglicherweise alternative Init-Systeme wie SysVinit oder Upstart.

Teilen

Weitere Blog-Beiträge

Weiterlesen.

Beste selbst gehostete Apps, die du mit Cosmos Cloud betreiben kannst – Titelbild mit App-Panels rund um ein Cosmos-Dashboard.
Server & Betriebssysteme

Die besten selbst gehosteten Apps für Cosmos Cloud: Dateien, Medien, Passwörter, Automatisierung und mehr!

Maybe du hast Cosmos Cloud eingerichtet und möchtest wissen, welche Apps gut dazu passen - oder du hast dich noch gar nicht für Cosmos entschieden und willst nur sehen, wie gut es in deinen Workflow passt

Nick SilberNick Silber 16 Min. Lesezeit
Portainer vs Cosmos Cloud für die Verwaltung von Docker-Apps – Titelbild mit Hybrid-Setup-Diagramm und farbigen Blöcken für Ops und Zugriff.
Server & Betriebssysteme

Portainer vs Cosmos Cloud: Die bessere Wahl für Docker App-Management

Wenn du Docker bereits kennst und einfach den saubereren Weg suchst, einen wachsenden App-Stack zu betreiben, hier die kurze Antwort auf Portainer vs Cosmos Cloud: Portainer ist die stärkere Wahl für direkt

Nick SilberNick Silber 14 Min. Lesezeit
Cosmos Cloud vs CasaOS vs Umbrel – Feature-Grafik mit drei Self-Hosting-Wegen innerhalb eines abstrakten Cloud-Netzwerks.
Server & Betriebssysteme

Cosmos Cloud vs CasaOS vs Umbrel: Welche Self-Hosted-Plattform passt zu deinem Setup?

Die kurze Antwort: CasaOS ist nach wie vor der einfachste Einstieg, Umbrel bietet die übersichtlichste kuratierte Oberfläche, und Cosmos Cloud macht mehr Sinn, sobald du mehr Kontrolle über Domain

Nick SilberNick Silber 11 Min. Lesezeit

Bereit zum Deployen? Ab 2,48 $/Monat.

Unabhängige Cloud seit 2008. AMD EPYC, NVMe, 40 Gbps. 14 Tage Geld-zurück-Garantie.