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