So beheben Sie den Fehler "Systemctl Command Not Found" in Linux

Eine schnelle Lösung zur Behebung des Problems mit dem Befehl „systemctl“ und Einführung einiger effizienter Alternativen dazu

systemctl Da es sich um ein wichtiges Dienstprogramm im Linux-Ökosystem handelt, kommt es sehr häufig vor, dass ein Problem mit dem Fehler „systemctl: command not found“ auftritt, wenn Sie versuchen, das systemctl Befehl. Dies ist möglicherweise nicht bei allen Linux-Distributionen der Fall, aber dieser Fehler kann wahrscheinlich auftreten, wenn Sie eine ältere Version der Linux-Distribution verwenden, die das nicht unterstützt systemctl Befehl.

Das bei Ihnen auftretende Problem ist ein sehr häufiges Problem und kann leicht behoben werden. Machen Sie sich also keine Sorgen und gehen Sie einfach das komplette Tutorial durch, um eine schnelle und einfache Lösung zu finden.

Wir werden versuchen, das Problem zuerst zu verstehen und es dann zu beheben.

Einsichten in systemctl und systemd

Da sich der Fehler auf die systemctl Befehl, es wäre gut, die Grundlagen dieses Befehls zu kennen, um die Fehlerbehebung für diesen Fehler besser zu verstehen.

systemctl ist ein von Linux angebotenes Befehlszeilen-Dienstprogramm, das verwendet wird, um ein weiteres Befehlszeilen-Dienstprogramm namens ‘systemd‘. Es inspiziert und kontrolliert auch den Systemmanager zusammen mit dem „systemd' Dienstprogramm.

Allgemeine Syntax:

systemctl [Option] [Name]

systemd ist ein Bündel von Daemons, Bibliotheken und Dienstprogrammen, das die Programme steuert, die ausgeführt werden, wenn Ihr System hochfährt. systemd schafft es auch, einen wichtigen Job wie das Starten eines Journals der Systemaktivität zu initiieren.

Dieses Dienstprogramm fungiert als zentrales Verwaltungsdienstprogramm für die meisten, wenn nicht alle Linux-basierten Betriebssysteme.

Ursache des Fehlers

Die wahrscheinlichste Ursache für diesen Fehler könnte sein, dass Sie eine ältere Version der Linux-Distribution verwenden. Viele der älteren Versionen verwenden die SysV-Initialisierung anstatt des systemd Dienstprogramm.

systemd Dienstprogramm fehlt in den vorherigen Linux-Versionen, da es sich erst kürzlich um die von Linux bereitgestellten Dienstprogramme erweitert hat. systemctl ist kompatibel zu Funktion und Überwachung mit dem systemd Dienstprogramm und funktioniert nicht mit den vorherigen Konfigurationen wie SysVdrin oder Emporkömmling.

Wenn Sie nicht verwenden systemd, dann wird dieser Fehler erwartet. So einfach und unkompliziert ist es.

Dieser Fehler kann auf folgende Weise auftreten.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] Passwort für gaurav: sudo: systemctl: Befehl nicht gefunden gaurav@ubuntu:~$ 

Hier haben wir versucht, die Ubuntu-Firewall (ufw) Verwendung der systemctl Befehl und ist auf den Fehler „systemctl: Befehl nicht gefunden“ gestoßen.

Was also tun, wenn Sie Ihre aktuelle Linux-Distribution nicht ändern möchten, die ein anderes zentrales Verwaltungsprogramm als verwendet systemd? Nun, wir haben eine schnelle Lösung für Sie, mit der Sie Ihre aktuelle Linux-Distribution behalten und Ihren Fehler in kürzester Zeit beheben können.

Lassen Sie uns jetzt die Lösung beobachten.

Behebung des Fehlers „systemctl: Befehl nicht gefunden“

Betrachten wir nun abschließend die Lösung des fraglichen Problems, nachdem wir die Ursachen und die grundlegenden Fakten zum Problem analysiert haben.

Lösung 1: Ersetzen systemctl mit Service Befehl

Eine einfache Lösung für den fraglichen Fehler besteht darin, die Service Befehl statt der Fehlerursache systemctl Befehl.

Service Befehl hilft beim Ausführen des SystemV-Initialisierung Skript, das von den älteren Linux-Distributionen verwendet wird. Wenn Sie das . nicht installieren möchten systemd Dienstprogramm auf Ihrem System, wird dieser Fix sicherlich für Sie funktionieren.

Sie können alle Dienste und Daemons auf Ihrer Linux-Distribution mit dem starten, neu starten oder stoppen Service Befehl.

Der Service Befehl und die systemctl Befehlsfunktion auf dieselbe Weise, der einzige Unterschied besteht hier in der Kompatibilität des Befehls mit den Dienstprogrammen, die für den reibungslosen Betrieb Ihres Systems verantwortlich sind.

Lass uns das sehen Service Befehl mit einer Abbildung.

Allgemeine Syntax:

sudo-Dienst [service_name] [Aktion]

In der obigen Syntax ist das [Aktion] Raum kann Aktionen beinhalten wie Anfang, halt, Neustart oder Status.

Wir führen den gleichen Befehl aus, um die zu starten ufw Dienst mit dem Service Befehl.

sudo service ufw start

Ausgabe:

gaurav@ubuntu:~$ sudo service ufw start gaurav@ubuntu:~$ sudo service ufw status ● ufw.service - Unkomplizierte Firewall Geladen: geladen (/lib/systemd/system/ufw.service; aktiviert; Herstellervoreinstellung: enab Aktiv: aktiv (beendet) seit Mo 28.09.2020 11:22:34 IST; vor 1h 5min Docs: man:ufw(8) Prozess: 333 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status =0/SU Main PID: 333 (code=exited, status=0/SUCCESS) 28. Sep 11:22:34 ubuntu systemd[1]: Gestartet Unkomplizierte Firewall Warnung: Journal wurde seit dem Start der Einheit gedreht. Log-Ausgabe ist unvollständig

Hier die Service Befehl wird anstelle des verwendet systemctl Befehl und es hat absolut gut geklappt.

Sehen wir uns noch ein Beispiel für die Service Befehl, um es richtig zu verstehen.

sudo service apache2 start

Ausgabe:

gaurav@ubuntu:~$ sudo service apache2 status ● apache2.service - Der Apache HTTP Server Geladen: geladen (/lib/systemd/system/apache2.service; aktiviert; Herstellervoreinstellung: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktiv: aktiv (läuft) seit Mo 28.09.2020 11:22:47 IST; vor 1h 16min Prozess: 1172 ExecStart=/usr/sbin/apachectl start (code= beendet, status=0/SUCCE Main PID: 1248 (apache2) Tasks: 55 (limit: 4456) CGroup: /system.slice/apache2.service 1248 /usr/sbin/apache2 -k start ├─1249 /usr/ sbin/apache2 -k start └─1250 /usr/sbin/apache2 -k start 28. September 11:22:43 ubuntu systemd[1]: Der Apache HTTP Server wird gestartet... 28. September 11:22:47 ubuntu apachectl[1172 ]: AH00112: Warnung: DocumentRoot [/var/www 28. Sep 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Konnte nicht zuverlässig det 28. Sep 11:22:47 ubuntu systemd[1]: Started The Apache HTTP Server.gaurav@ubuntu:~$ 

Wir haben die benutzt Service Befehl zum Starten des Apache2-Dienstprogramms. Verwendung der Status Option mit der Service Befehl zeigt den aktuellen Status des Dienstes an. Wir erhalten die Details, ob es läuft oder tot (inaktiv) ist.

Lassen Sie uns jetzt die halt Aktion zum Stoppen des Apache2-Dienstes mit der Service Befehl.

gaurav@ubuntu:~$ sudo service apache2 stop gaurav@ubuntu:~$ sudo service apache2 statuszeilen 1-1...überspringen... ● apache2.service - Der Apache HTTP Server geladen: geladen (/lib/systemd/ system/apache2.service; aktiviert; Herstellervoreinstellung: aktiviert) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Aktiv: inaktiv (dead) seit Mo 28.09.2020 12 :42:06 IST; vor 1s Prozess: 4928 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Process: 1172 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID : 1248 (code=exited, status=0/SUCCESS) 28. September 11:22:43 ubuntu systemd[1]: Der Apache HTTP Server wird gestartet... 28. September 11:22:47 ubuntu apachectl[1172]: AH00112: Warnung : DocumentRoot [/var/www/html] existiert nicht 28. Sep. 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Der vollständig qualifizierte Domänenname des Servers konnte mit ::1 nicht zuverlässig ermittelt werden. Stellen Sie das 'S 28. September 11:22:47 ubuntu systemd[1]: Started The Apache HTTP Server ein.

Aus den oben erläuterten ausführlichen Beispielen können wir schließen, dass wir diesen Befehl anstelle des verwenden können systemctl Befehl zum Steuern und Überwachen anderer Daemons und Dienste unter der Linux-Distribution.

Fix 2: Suche nach systemd Paket

Manchmal kann es sein, dass nur die systemd Paketinstallation kann das Problem beheben. Zuerst müssen Sie den Installationsstatus des systemd Paket auf Ihrem System.

Verwenden Sie den folgenden Befehl, um das Paket auf Ihrem System zu überprüfen.

sudo dpkg -l | grep systemd

Wenn die systemd utilty bereits installiert ist, erhalten Sie eine ähnliche Ausgabe wie unten gezeigt.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] Passwort für gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 einfaches Interprozess-Messaging-System (systemd --user integration) ii libnss-systemd:amd64 237-3ubuntu10.42 amd64 nss-Modul mit dynamischem Auflösung von Benutzer- und Gruppennamen ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 System- und Service-Manager - PAM-Modul ii libsystemd0:amd64 237-3ubuntu10.42 amd64 Systemd Utility Library ii libsystemd0:i386 237-3ubuntu10.42 i386 Systemd Utility Library ii networkd-dispatcher 1.7-0ubuntu3.3 all Dispatcher-Dienst für systemd-networkd-Verbindungsstatusänderungen ri python3-systemd 234-1build1 amd64 Python 3-Bindungen für systemd ii systemd 237-3ubuntu10.42 amd64-System- und Dienstmanager 3ubuntu10.42 AMD64 System- und Servicemanager - SysV-Links gaurav@ubuntu:~$ 

Wenn Sie eine ähnliche Ausgabe erhalten, bedeutet dies, dass systemd auf Ihrem System installiert ist.

Wenn es nicht installiert ist, können Sie es wie folgt installieren.

sudo apt-get update
sudo apt-get install systemd

Wenn es installiert ist und der Fehler weiterhin besteht, versuchen Sie es mit dem folgenden Befehl erneut zu installieren.

sudo apt-get install --reinstall systemd

Dies wird Ihr Problem lösen, indem Sie die systemd Dienstprogramm.

Fazit

In diesem Tutorial haben wir gelernt, das „systemctl: command not found“ zu beheben. Wir können mit Sicherheit den Schluss ziehen, dass die Verwendung der Service Befehl statt der systemctl ist eine gute Idee und löst das Problem sehr gut. Wir können das ganz einfach nutzen Service Befehl, nachdem Sie die veranschaulichenden Beispiele im Tutorial verstanden haben.