Kuinka korjata "Systemctl-komentoa ei löydy" -virhe Linuxissa

Pikakorjaus ongelman ratkaisemiseksi "systemctl"-komennolla ja joidenkin tehokkaiden vaihtoehtojen käyttöönotolla

systemctl Koska se on tärkeä apuohjelma Linux-ekosysteemissä, on hyvin yleistä, että saatat kohdata "systemctl: komentoa ei löydy" -virheen, kun yrität suorittaa systemctl komento. Tämä ei välttämättä päde kaikissa Linux-jakeluissa, mutta saatat todennäköisesti kohdata tämän virheen, kun käytät Linux-jakelun vanhempaa versiota, joka ei tue systemctl komento.

Sinulle esiintyvä ongelma on hyvin yleinen ongelma, ja se voidaan helposti korjata. Älä siis huolehdi, vaan käy läpi koko opetusohjelma löytääksesi nopean ja helpon korjauksen.

Yritämme ensin ymmärtää ongelman ja sitten korjata sen.

Näkemyksiä systemctl ja systemd

Koska virhe liittyy systemctl komennon, olisi hyvä tietää tämän komennon perusteet ymmärtääksesi tämän virheen korjauksen paremmin.

systemctl on Linuxin tarjoama komentorivityökalu, jota käytetään valvomaan ja ohjaamaan yhtä muuta komentoriviohjelmaa nimeltä "systemd‘. Se myös tarkastaa ja ohjaa järjestelmänhallintaa yhdessä "systemd"hyöty.

Yleinen syntaksi:

systemctl [vaihtoehto] [nimi]

systemd on joukko daemoneja, kirjastoja ja apuohjelmia, jotka ohjaavat ohjelmia, jotka suoritetaan järjestelmän käynnistyessä. systemd onnistuu myös käynnistämään tärkeän työn, kuten käynnistämään järjestelmän toimintapäiväkirjan.

Tämä apuohjelma toimii keskushallintatyökaluna useimmille, ellei kaikille, Linux-pohjaisille käyttöjärjestelmille.

Virheen syy

Todennäköisin syy tähän virheeseen saattaa olla se, että käytät Linux-jakelun vanhempaa versiota. Monet vanhemmat versiot käyttävät SysV init sijasta systemd apuohjelma.

systemd apuohjelma puuttuu aiemmista Linux-versioista, koska se on uusi lisäys Linuxin tarjoamaan apuohjelmiin. systemctl on yhteensopiva toiminnan ja näytön kanssa systemd apuohjelma ja ei toimi aiempien kokoonpanojen kanssa, kuten SysVsen sisällä tai Nousukas.

Jos et käytä systemd, tämä virhe on odotettavissa. Se on niin yksinkertainen ja suoraviivainen.

Saatat kohdata tämän virheen seuraavalla tavalla.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] salasana gaurav:lle: sudo: systemctl: komentoa ei löydy gaurav@ubuntu:~$ 

Täällä yritimme käynnistää Ubuntun palomuurin (ufw) käyttämällä systemctl komento ja kohtasi "systemctl: komentoa ei löydy" -virheen.

Joten mitä tehdä nyt, jos et halua muuttaa nykyistä Linux-jakeluasi, joka käyttää jotain muuta keskushallintaapuohjelmaa kuin systemd? No, meillä on sinulle pikakorjaus, jonka avulla voit säilyttää nykyisen Linux-jakelusi ja korjata virheesi hetkessä.

Tarkkaillaan nyt korjausta.

Korjataan virhe "systemctl: komentoa ei löydy".

Lopuksi tarkastellaan nyt kyseessä olevan ongelman ratkaisua sen jälkeen, kun olemme analysoineet ongelman syyt ja perusasiat.

Korjaus 1: Vaihto systemctl kanssa palvelua komento

Yksinkertainen korjaus kyseiseen virheeseen on käyttää palvelua komento virheen aiheuttajan sijaan systemctl komento.

palvelua komento auttaa suorittamaan SystemV init komentosarja, jota käytetään vanhemmissa Linux-jakeluissa. Jos et halua asentaa systemd apuohjelma järjestelmässäsi, tämä korjaus toimii varmasti sinulle.

Voit käynnistää, käynnistää uudelleen tai pysäyttää kaikki palvelut ja demonit Linux-jakelussasi käyttämällä palvelua komento.

The palvelua komento ja systemctl komentotoimintoa samalla tavalla, ainoa ero tässä on komennon yhteensopivuus apuohjelmien kanssa, jotka vastaavat järjestelmän sujuvasta toiminnasta.

Katsotaanpa palvelua komento kuvalla.

Yleinen syntaksi:

sudo-palvelu [palvelun_nimi] [toiminto]

Yllä olevassa syntaksissa [toiminta] tila voi sisältää toimintoja, kuten alkaa, lopettaa, uudelleenkäynnistää tai Tila.

Suoritamme saman komennon käynnistääksesi ufw palvelua käyttämällä palvelua komento.

sudo-palvelu ufw start

Lähtö:

gaurav@ubuntu:~$ sudo-palvelu ufw aloita gaurav@ubuntu:~$ sudo-palvelu ufw status ● ufw.service - mutkaton palomuuri Ladattu: ladattu (/lib/systemd/system/ufw.service; käytössä; toimittajan esiasetus: enab Active: aktiivinen (poistuttu) maanantaista 2020-09-28 11:22:34 IST; 1 h 5 min sitten Asiakirjat: man:ufw(8) Prosessi: 333 ExecStart=/lib/ufw/ufw-init aloitus hiljainen (koodi=poistunut, tila =0/SU Pää-PID: 333 (koodi=poistuttu, tila=0/MENNISTYS) 28. syyskuuta 11:22:34 ubuntu systemd[1]: Aloitettu mutkaton palomuuri Varoitus: lokia on kierretty yksikön käynnistämisen jälkeen. Lokin lähtö on epätäydellinen

Tässä, palvelua komentoa käytetään systemctl komento ja se toimi aivan hyvin.

Katsotaanpa vielä yksi esimerkki palvelua komento saadakseen siitä oikean käsityksen.

sudo-palvelun apache2 käynnistys

Lähtö:

gaurav@ubuntu:~$ sudo service apache2 status ● apache2.service - Apache HTTP -palvelin ladattu: ladattu (/lib/systemd/system/apache2.service; käytössä; toimittajan esiasetus: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktiivinen: aktiivinen (käynnissä) maanantaista 2020-09-28 11:22:47 IST lähtien; 1 h 16 min sitten Prosessi: 1172 ExecStart=/usr/sbin/apachectl aloitus (koodi= exited, status=0/SUCCE Pää-PID: 1248 (apache2) Tehtävät: 55 (raja: 4456) CGroup: /system.slice/apache2.service ├─1248 /usr/sbin/apache2 -k start ├─r1249 sbin/apache2 -k aloitus └─1250 /usr/sbin/apache2 -k aloitus 28. syyskuuta 11:22:43 ubuntu systemd[1]: Apache HTTP -palvelimen käynnistys... 28. syyskuuta 11:22:47 ubuntu apachectl[1172 ]: AH00112: Varoitus: DocumentRoot [/var/www 28. syyskuuta 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Ei voitu määrittää luotettavasti 28. syyskuuta 11:22:47 ubuntu aloitti Apache-järjestelmän[1]: Palvelin gaurav@ubuntu:~$ 

Olemme käyttäneet palvelua -komento käynnistää apache2-apuohjelman. Käyttämällä Tila vaihtoehto kanssa palvelua -komento näyttää palvelun nykyisen tilan. Saamme tiedot, onko se käynnissä vai kuollut (ei-aktiivinen).

Otetaan nyt käyttöön lopettaa toimenpide apache2-palvelun pysäyttämiseksi käyttämällä palvelua komento.

gaurav@ubuntu:~$ sudo service apache2 stop gaurav@ubuntu:~$ sudo service apache2 tilarivit 1--1...ohitetaan... ● apache2.service - Apache HTTP -palvelin ladattu: ladattu (/lib/systemd/ system/apache2.service; käytössä; toimittajan esiasetus: käytössä) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Aktiivinen: ei-aktiivinen (kuollut) maanantaista 28.9.2020 alkaen 12. :42:06 IST; 1 s sitten Prosessi: 4928 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Prosessi: 1172 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Pää-PID : 1248 (code=exited, status=0/SUCCESS) 28. syyskuuta 11:22:43 ubuntu systemd[1]: Apache HTTP -palvelimen käynnistys... 28. syyskuuta 11:22:47 ubuntu apachectl[1172]: AH00112: Varoitus : DocumentRoot [/var/www/html] ei ole olemassa 28. syyskuuta 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Palvelimen täysin hyväksyttyä verkkotunnusta ei voitu määrittää luotettavasti käyttämällä ::1:tä. Aseta 'S Sep 28 11:22:47 ubuntu systemd[1]: Käynnistettiin Apache HTTP Server.

Yllä selitetyistä yksityiskohtaisista esimerkeistä voimme päätellä, että voimme käyttää tätä komentoa systemctl komento ohjaa ja valvoa muita Linux-jakelun demoneita ja palveluita.

Korjaus 2: Tarkistetaan systemd paketti

Joskus voi käydä niin, että vain systemd paketin asennus saattaa korjata ongelman. Ensin sinun on tarkistettava asennuksen tila systemd paketti järjestelmässäsi.

Käytä seuraavaa komentoa tarkistaaksesi paketin järjestelmässäsi.

sudo dpkg -l | grep systemd

Jos systemd apuohjelma on jo asennettu, saat alla olevan kuvan mukaisen lähdön.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] salasana gaurav:lle: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 yksinkertainen prosessien välinen viestintäjärjestelmä (systemd --user integration) ii libnss-systemd:amd64 237-3ubuntu10.42n dynaaminen moduli käyttäjän ja ryhmän nimen selvitys ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 järjestelmän ja palvelun hallinta - PAM-moduuli ii libsystemd0:amd64 237-3ubuntu10.42 amd64 systemd apuohjelmakirjasto ii libuntu10.46 system2unsystemd0.i37-8ubikirjasto ii networkd-dispatcher 1.7-0ubuntu3.3 all Dispatcher-palvelu systemd-networkd-yhteyden tilan muutoksille ri python3-systemd 234-1build1 amd64 Python 3 -sidokset systemd ii systemd 237-3ubuntu10.42 amd64-järjestelmälle ja 237-3ubuntu10.42 amd64-järjestelmälle 2d 3-sysii 3ubuntu10.42 amd64 järjestelmä- ja palveluhallinta - SysV linkit gaurav@ubuntu:~$ 

Jos saat samanlaisen tulosteen, se tarkoittaa sitä systemd on asennettu järjestelmääsi.

Jos sitä ei ole asennettu, voit asentaa sen seuraavalla tavalla.

sudo apt-get päivitys
sudo apt-get install systemd

Jos se on asennettu ja virhe jatkuu, yritä asentaa se uudelleen seuraavalla komennolla.

sudo apt-get install --reinstall systemd

Tämä ratkaisee ongelmasi asentamalla systemd apuohjelma.

Johtopäätös

Opimme korjaamaan "systemctl: komentoa ei löydy" tässä opetusohjelmassa. Voimme turvallisesti päätellä, että käyttämällä palvelua komento systemctl on hyvä idea ja ratkaisee ongelman erittäin hyvin. Voimme käyttää helposti palvelua komento, kun olet ymmärtänyt opetusohjelmassa esitetyt havainnolliset esimerkit.