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 SysV
i 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.