Sådan rettes fejlen "Systemctl Command Not Found" i Linux

En hurtig løsning til at løse problemet med 'systemctl'-kommandoen og introduktion af nogle effektive alternativer til det

systemctl da det er et vigtigt værktøj i Linux-økosystemet, er det meget almindeligt, at du kan støde på et problem "systemctl: command not found", når du prøver at køre systemctl kommando. Dette er muligvis ikke tilfældet for alle distributioner af Linux, men du kan sandsynligvis støde på denne fejl, når du bruger en ældre version af Linux-distributionen, som ikke understøtter systemctl kommando.

Det problem, der opstår for dig, er et meget almindeligt problem og kan nemt løses. Så du skal ikke bekymre dig overhovedet, og bare gå gennem den komplette tutorial for at finde en hurtig og nem løsning.

Vi vil prøve at forstå problemet først og derefter løse det.

Indblik i systemctl og systemd

Da fejlen er med henvisning til systemctl kommando, ville det være godt at kende det grundlæggende i denne kommando for bedre at forstå rettelsen af ​​denne fejl.

systemctl er et kommandolinjeværktøj, som Linux tilbyder, som bruges til at overvåge og kontrollere et andet kommandolinjeværktøj ved navn 'systemd’. Den inspicerer og kontrollerer også systemadministratoren sammen medsystemd’ nytte.

Generel syntaks:

systemctl [valgmulighed] [navn]

systemd er et bundt af dæmoner, biblioteker og hjælpeprogrammer, som styrer de programmer, der kører, når dit system starter op. systemd formår også at igangsætte et vigtigt job som at starte en journal over systemaktivitet.

Dette hjælpeprogram fungerer som det centrale administrationsværktøj for de fleste, hvis ikke alle, Linux-baserede operativsystemer.

Grundårsagen til fejlen

Den mest sandsynlige årsag til denne fejl kan være, at du bruger en ældre version af Linux-distributionen. Mange af de ældre versioner bruger SysV init i stedet for systemd nytte.

systemd hjælpeprogrammet er fraværende i de tidligere Linux-versioner, da det er en nylig tilføjelse til kurven af ​​hjælpeprogrammer leveret af Linux. systemctl er kompatibel med funktion og overvågning med systemd og vil ikke fungere med de tidligere konfigurationer som f.eks SysVi det eller Opkomling.

Hvis du ikke bruger systemd, så forventes denne fejl. Det er så enkelt og ligetil som det.

Du kan støde på denne fejl på følgende måde.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] adgangskode til gaurav: sudo: systemctl: kommando blev ikke fundet gaurav@ubuntu:~$ 

Her forsøgte vi at starte Ubuntu Fire Wall (ufw) bruger systemctl kommandoen og stødte på fejlen "systemctl: kommando ikke fundet".

Så hvad skal du gøre nu, hvis du ikke ønsker at ændre din nuværende Linux-distribution, som bruger et andet centralt administrationsværktøj end systemd? Nå, vi har en hurtig løsning til dig, som vil give dig mulighed for at beholde din nuværende Linux-distribution samt rette din fejl på ingen tid.

Lad os observere rettelsen nu.

Retter fejlen "systemctl: kommando ikke fundet".

Lad os endelig nu se på løsningen af ​​det pågældende problem efter at have analyseret årsagerne og grundlæggende fakta om problemet.

Rettelse 1: Udskiftning systemctl med service kommando

En simpel rettelse af den pågældende fejl er at bruge service kommando i stedet for den fejl, der forårsager systemctl kommando.

service kommando hjælper med at køre SystemV init script som bruges af de ældre Linux-distributioner. Hvis du ikke ønsker at installere systemd værktøj på dit system, vil denne rettelse helt sikkert fungere for dig.

Du kan starte, genstarte eller stoppe alle tjenester og dæmoner på din Linux-distribution ved hjælp af service kommando.

Det service kommando og systemctl kommandoen fungerer på samme måde, den eneste forskel her er kompatibiliteten af ​​kommandoen med de værktøjer, der er ansvarlige for den yndefulde drift af dit system.

Lad os se service kommando med en illustration.

Generel syntaks:

sudo service [service_name] [handling]

I ovenstående syntaks er [handling] rum kan omfatte handlinger som Start, hold op, genstart eller status.

Vi kører den samme kommando for at starte ufw tjeneste ved hjælp af service kommando.

sudo service ufw start

Produktion:

gaurav@ubuntu:~$ sudo service ufw start gaurav@ubuntu:~$ sudo service ufw status ● ufw.service - Ukompliceret firewall Indlæst: indlæst (/lib/systemd/system/ufw.service; aktiveret; forudindstillet leverandør: enab Aktiv: aktiv (afsluttet) siden man 2020-09-28 11:22:34 IST; 1t 5min siden Dokumenter: man:ufw(8) Proces: 333 ExecStart=/lib/ufw/ufw-init start stille (kode=afsluttet, status =0/SU Hoved-PID: 333 (kode=afsluttet, status=0/SUCCES) Sep 28 11:22:34 ubuntu systemd[1]: Startet Ukompliceret firewall. Advarsel: Journalen er blevet roteret siden enheden blev startet. Log output er ufuldstændig

Her, den service kommandoen bruges i stedet for systemctl kommando og det fungerede helt fint.

Lad os se endnu et eksempel på service kommando for at få en ordentlig forståelse af det.

sudo service apache2 start

Produktion:

gaurav@ubuntu:~$ sudo service apache2 status ● apache2.service - Apache HTTP-serveren er indlæst: indlæst (/lib/systemd/system/apache2.service; aktiveret; forudindstillet leverandør: Drop-in: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktiv: aktiv (kører) siden man 2020-09-28 11:22:47 IST; 1t 16min siden Proces: 1172 ExecStart=/usr/sbin/apachectl start (kode= afsluttet, status=0/SUCCE Hoved-PID: 1248 (apache2) Opgaver: 55 (grænse: 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. sep. 11:22:43 ubuntu systemd[1]: Start af Apache HTTP-serveren... 28. sep. 11:22:47 ubuntu apachectl[1172 ]: AH00112: Advarsel: DocumentRoot [/var/www Sep 28 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Kunne ikke pålideligt det 28. Sep 11:22:47 ubuntu systemd[1]: Startede Apache HTTP Server. gaurav@ubuntu:~$ 

Vi har brugt service kommando for at starte apache2-værktøjet. Bruger status mulighed med service kommandoen viser den aktuelle status for tjenesten. Vi får detaljerne, om den kører eller er død (inaktiv).

Lad os nu bruge hold op handling for at stoppe apache2-tjenesten ved hjælp af service kommando.

gaurav@ubuntu:~$ sudo service apache2 stop gaurav@ubuntu:~$ sudo service apache2 statuslinjer 1--1...springer... ● apache2.service - Apache HTTP-serveren er indlæst: indlæst (/lib/systemd/ system/apache2.service; aktiveret; forudindstillet leverandør: aktiveret) Drop-in: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Aktiv: inaktiv (død) siden man 2020-09-28 12 :42:06 IST; 1s siden Proces: 4928 ExecStop=/usr/sbin/apachectl stop (kode=afsluttet, status=0/SUCCESS) Proces: 1172 ExecStart=/usr/sbin/apachectl start (kode=afsluttet, status=0/SUCCES) Hoved-PID : 1248 (kode=afsluttet, status=0/SUCCES) Sep 28 11:22:43 ubuntu systemd[1]: Start af Apache HTTP Server... Sep 28 11:22:47 ubuntu apachectl[1172]: AH00112: Advarsel : DocumentRoot [/var/www/html] eksisterer ikke 28. september 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Kunne ikke pålideligt bestemme serverens fuldt kvalificerede domænenavn ved hjælp af ::1. Indstil 'S 28. september 11:22:47 ubuntu systemd[1]: Startede Apache HTTP-serveren.

Fra de detaljerede eksempler forklaret ovenfor kan vi konkludere, at vi kan bruge denne kommando i stedet for systemctl kommando til at kontrollere og overvåge andre dæmoner og tjenester under Linux-distributionen.

Rettelse 2: Tjek efter systemd pakke

Nogle gange kan det være sådan, at kun systemd pakkeinstallation kan løse problemet. Først skal du kontrollere installationsstatussen for systemd pakke på dit system.

Brug følgende kommando til at kontrollere pakken på dit system.

sudo dpkg -l | grep systemd

Hvis systemd utilty allerede er installeret, vil du få et output svarende til som vist nedenfor.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] adgangskode til gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 simpelt interproces-meddelelsessystem (systemd --brugerintegration) ii libnss-systemd:amd64 237-3ubuntu10.42 amd64 nss-modul, der leverer dynamisk opløsning af bruger- og gruppenavne ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 system- og serviceadministrator - PAM-modul ii libsystemd0:amd64 237-3ubuntu10.42 amd64 systemd-hjælpebibliotek ii libsystemd0:i386 i386 i386-hjælpeprogram li386. ii networkd-dispatcher 1.7-0ubuntu3.3 alle Dispatcher-tjeneste for systemd-networkd forbindelsesstatusændringer ri python3-systemd 234-1build1 amd64 Python 3-bindinger til systemd ii systemd 237-3ubuntu10.42 amd64 systemd-7-svi 3ubuntu10.42 amd64 system og service manager - SysV links gaurav@ubuntu:~$ 

Hvis du får et output, der ligner dette, betyder det det systemd er installeret på dit system.

Hvis det ikke er installeret, kan du installere det på følgende måde.

sudo apt-get opdatering
sudo apt-get install systemd

Hvis det er installeret, og fejlen stadig fortsætter, så prøv at geninstallere det ved hjælp af følgende kommando.

sudo apt-get install --geninstaller systemd

Dette vil løse dit problem ved at installere systemd nytte.

Konklusion

Vi lærte at rette "systemctl: kommandoen ikke fundet" i denne tutorial. Vi kan roligt konkludere, at brug af service kommando i stedet for systemctl er en god idé og løser problemet meget godt. Vi kan sagtens bruge service kommando efter at have forstået de illustrative eksempler vist i selvstudiet.