Hvordan fikse "Systemctl Command Not Found"-feil i Linux

En rask løsning for å løse problemet med 'systemctl'-kommandoen og introduksjon av noen effektive alternativer til den

systemctl som et viktig verktøy i Linux-økosystemet, er det veldig vanlig at du kan støte på et problem "systemctl: command not found"-feil når du prøver å kjøre systemctl kommando. Dette er kanskje ikke tilfellet for alle distribusjoner av Linux, men du kan sannsynligvis støte på denne feilen når du bruker en eldre versjon av Linux-distribusjonen som ikke støtter systemctl kommando.

Problemet som oppstår for deg er et veldig vanlig problem og kan enkelt løses. Så ikke bekymre deg i det hele tatt, og gå gjennom hele opplæringen for å finne en rask og enkel løsning.

Vi vil prøve å forstå problemet først og deretter fikse det.

Innsikt i systemctl og systemd

Som feilen er med henvisning til systemctl kommandoen, ville det være greit å vite det grunnleggende om denne kommandoen for å forstå løsningen for denne feilen bedre.

systemctl er et kommandolinjeverktøy som Linux tilbyr, som brukes til å overvåke og kontrollere et annet kommandolinjeverktøy kalt 'systemd'. Den inspiserer og kontrollerer også systemansvarlig sammen medsystemd' nytte.

Generell syntaks:

systemctl [alternativ] [navn]

systemd er en pakke med demoner, biblioteker og verktøy som kontrollerer programmene som kjører når systemet starter opp. systemd klarer også å sette i gang en viktig jobb som å starte en journal over systemaktivitet.

Dette verktøyet fungerer som det sentrale administrasjonsverktøyet for de fleste om ikke alle Linux-baserte operativsystemer.

Grunnårsaken til feilen

Den mest sannsynlige årsaken til denne feilen kan være at du bruker en eldre versjon av Linux-distribusjonen. Mange av de eldre versjonene bruker SysV init i stedet for systemd nytte.

systemd verktøyet er fraværende i de tidligere Linux-versjonene, da det er et nylig tillegg til kurven med verktøy levert av Linux. systemctl er kompatibel med funksjon og overvåking med systemd verktøyet og vil ikke fungere med tidligere konfigurasjoner som SysVi det eller Oppkomling.

Hvis du ikke bruker systemd, da forventes denne feilen. Det er så enkelt og greit som det.

Du kan støte på denne feilen på følgende måte.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] passord for gaurav: sudo: systemctl: kommando ikke funnet gaurav@ubuntu:~$ 

Her forsøkte vi å starte Ubuntu Fire Wall (ufw) bruker systemctl kommandoen og oppdaget feilen "systemctl: kommando ikke funnet".

Så, hva skal du gjøre nå hvis du ikke ønsker å endre din nåværende Linux-distribusjon som bruker et annet sentralt administrasjonsverktøy enn systemd? Vel, vi har en rask løsning for deg som vil tillate deg å beholde din nåværende Linux-distribusjon samt fikse feilen på kort tid.

La oss observere løsningen nå.

Retter feilen "systemctl: kommando ikke funnet".

Til slutt, la oss nå se på løsningen av det aktuelle problemet etter å ha analysert årsakene og grunnleggende fakta om problemet.

Fix 1: Erstatter systemctl med service kommando

En enkel løsning for den aktuelle feilen er å bruke service kommando i stedet for feilen som forårsaker systemctl kommando.

service kommandoen hjelper med å kjøre SystemV init skript som brukes av de eldre Linux-distribusjonene. Hvis du ikke ønsker å installere systemd verktøyet på systemet ditt, vil denne løsningen helt sikkert fungere for deg.

Du kan starte, starte på nytt eller stoppe alle tjenester og demoner på Linux-distribusjonen din ved å bruke service kommando.

De service kommandoen og systemctl kommandoen fungerer på samme måte, den eneste forskjellen her er kompatibiliteten til kommandoen med verktøyene som er ansvarlige for den grasiøse driften av systemet ditt.

La oss se service kommando med en illustrasjon.

Generell syntaks:

sudo tjeneste [service_name] [handling]

I syntaksen ovenfor er [handling] plass kan inneholde handlinger som start, Stoppe, omstart eller status.

Vi kjører den samme kommandoen for å starte ufw tjeneste som bruker service kommando.

sudo service ufw start

Produksjon:

gaurav@ubuntu:~$ sudo tjeneste ufw start gaurav@ubuntu:~$ sudo tjeneste ufw status ● ufw.service - Ukomplisert brannmur Lastet: lastet (/lib/systemd/system/ufw.service; aktivert; leverandør forhåndsinnstilt: enab Aktiv: aktiv (avsluttet) siden man 2020-09-28 11:22:34 IST; 1t 5min siden Dokumenter: man:ufw(8) Prosess: 333 ExecStart=/lib/ufw/ufw-init start stille (kode=avsluttet, status =0/SU Hoved-PID: 333 (kode=avsluttet, status=0/SUKSESS) 28. september 11:22:34 ubuntu systemd[1]: Startet Ukomplisert brannmur. Advarsel: Journalen har blitt rotert siden enheten ble startet. Loggutdata er ufullstendig

Her, den service kommandoen brukes i stedet for systemctl kommando, og det gikk helt fint.

La oss se enda et eksempel på service kommando for å få en ordentlig forståelse av det.

sudo-tjenesten apache2 start

Produksjon:

gaurav@ubuntu:~$ sudo tjeneste apache2 status ● apache2.service - Apache HTTP-serveren lastet: lastet (/lib/systemd/system/apache2.service; aktivert; leverandørens forhåndsinnstilling: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktiv: aktiv (kjører) siden man 2020-09-28 11:22:47 IST; 1t 16min siden Prosess: 1172 ExecStart=/usr/sbin/apachectl start (kode= avsluttet, status=0/SUCCE Hoved-PID: 1248 (apache2) Oppgaver: 55 (grense: 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]: Starter Apache HTTP-serveren... 28. september 11:22:47 ubuntu apachectl[1172 ]: AH00112: Advarsel: DocumentRoot [/var/www 28. sep. 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Kunne ikke pålitelig det 28. sep. 11:22:47 ubuntu systemd[1]: Startet Apache HTTP Server. gaurav@ubuntu:~$ 

Vi har brukt service kommando for å starte apache2-verktøyet. Bruker status alternativet med service kommandoen vil vise gjeldende status for tjenesten. Vi vil få detaljene om den kjører eller er død (inaktiv).

La oss nå bruke Stoppe handling for å stoppe apache2-tjenesten ved å bruke service kommando.

gaurav@ubuntu:~$ sudo-tjeneste apache2 stopp gaurav@ubuntu:~$ sudo-tjeneste apache2 statuslinjer 1--1...hopper over... ● apache2.service - Apache HTTP-serveren lastet: lastet (/lib/systemd/ system/apache2.service; aktivert; leverandør forhåndsinnstilt: aktivert) 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 Prosess: 4928 ExecStop=/usr/sbin/apachectl stopp (kode=avsluttet, status=0/SUKSESS) Prosess: 1172 ExecStart=/usr/sbin/apachectl start (kode=avsluttet, status=0/SUKSESS) Hoved-PID : 1248 (kode=avsluttet, status=0/SUKSESS) 28. september 11:22:43 ubuntu systemd[1]: Starte Apache HTTP-serveren... 28. september 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ålitelig fastslå serverens fullt kvalifiserte domenenavn ved å bruke ::1. Sett 'S 28. september 11:22:47 ubuntu systemd[1]: Startet Apache HTTP-serveren.

Fra de detaljerte eksemplene som er forklart ovenfor, kan vi konkludere med at vi kan bruke denne kommandoen i stedet for systemctl kommando for å kontrollere og overvåke andre demoner og tjenester under Linux-distribusjonen.

Fix 2: Sjekker etter systemd pakke

Noen ganger kan det være slik at bare systemd pakkeinstallasjon kan løse problemet. Først må du sjekke installasjonsstatusen til systemd pakken på systemet ditt.

Bruk følgende kommando for å sjekke pakken på systemet ditt.

sudo dpkg -l | grep systemd

Hvis systemd verktøyet allerede er installert, vil du få en utgang som ligner på vist nedenfor.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] passord for gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 enkelt interprosess meldingssystem (systemd --brukerintegrasjon) ii libnss-systemd:amd64 237-3ubuntu10.42 amd64 nss modul gir dynamisk bruker- og gruppenavnoppløsning ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 system- og serviceadministrator - PAM-modul ii libsystemd0:amd64 237-3ubuntu10.42 amd64 systemd-verktøybibliotek ii libsystemd0:i386 i386 i386-verktøy librunsystem 23870-system ii networkd-dispatcher 1.7-0ubuntu3.3 all Dispatcher-tjeneste for systemd-networkd tilkoblingsstatusendringer ri python3-systemd 234-1build1 amd64 Python 3-bindinger for systemd ii systemd 237-3ubuntu10.42 amd64 systemd-7-svi 3ubuntu10.42 amd64 system- og serviceansvarlig - SysV-lenker gaurav@ubuntu:~$ 

Hvis du får en utgang som ligner på dette, betyr det det systemd er installert på systemet ditt.

Hvis den ikke er installert, kan du installere den på følgende måte.

sudo apt-get oppdatering
sudo apt-get install systemd

Hvis den er installert og feilen fortsatt vedvarer, kan du prøve å installere den på nytt med følgende kommando.

sudo apt-get install --installer systemd på nytt

Dette vil løse problemet ved å installere systemd nytte.

Konklusjon

Vi lærte å fikse "systemctl: kommandoen ikke funnet" i denne opplæringen. Vi kan trygt konkludere med at bruk av service kommandoen i stedet for systemctl er en god idé og løser problemet veldig bra. Vi kan enkelt bruke service kommando etter å ha forstått de illustrative eksemplene vist i veiledningen.