Kaip ištaisyti klaidą „Systemctl komanda nerasta“ sistemoje „Linux“.

Greitas problemos sprendimas naudojant komandą „systemctl“ ir keletas veiksmingų jos alternatyvų

systemctl Kadangi tai yra svarbi priemonė Linux ekosistemoje, labai dažnai galite susidurti su klaida „systemctl: komanda nerasta“, kai bandote paleisti systemctl komandą. Tai gali būti ne visų Linux platinimų atvejis, bet tikriausiai galite susidurti su šia klaida, kai naudojate senesnę Linux platinimo versiją, kuri nepalaiko systemctl komandą.

Jums kylanti problema yra labai dažna problema, kurią galima lengvai išspręsti. Taigi, nesijaudinkite ir tiesiog peržiūrėkite visą mokymo programą, kad greitai ir lengvai pataisytumėte.

Pirmiausia stengsimės suprasti problemą, o tada ją išspręsti.

Įžvalgos apie systemctl ir sisteminis

Kadangi klaida yra susijusi su systemctl komandą, būtų gerai žinoti šios komandos pagrindus, kad geriau suprastumėte šios klaidos taisymą.

systemctl yra komandų eilutės programa, kurią siūlo „Linux“, kuri naudojama stebėti ir valdyti vieną kitą komandų eilutės programą, pavadintą „sisteminis‘. Ji taip pat tikrina ir kontroliuoja sistemos tvarkyklę kartu su „sisteminis' naudingumas.

Bendroji sintaksė:

systemctl [parinktis] [vardas]

sisteminis yra demonų, bibliotekų ir paslaugų rinkinys, kuris valdo programas, kurios paleidžiamos, kai sistema paleidžiama. sisteminis taip pat sugeba pradėti svarbų darbą, pavyzdžiui, pradėti sistemos veiklos žurnalą.

Ši priemonė veikia kaip centrinė valdymo priemonė daugeliui, jei ne visoms Linux pagrįstoms operacinėms sistemoms.

Pagrindinė klaidos priežastis

Labiausiai tikėtina šios klaidos priežastis gali būti tai, kad naudojate senesnę Linux platinimo versiją. Daugelis senesnių versijų naudoja SysV init vietoj sisteminis naudingumas.

sisteminis paslaugų nėra ankstesnėse „Linux“ versijose, nes tai neseniai papildytas „Linux“ teikiamų paslaugų krepšeliu. systemctl yra suderinamas su funkcija ir monitoriumi sisteminis įrankis ir neveiks su ankstesnėmis konfigūracijomis, pvz SysVinit arba Pradedantis.

Jei nenaudojate sisteminis, tada ši klaida tikimasi. Tai taip paprasta ir aišku.

Su šia klaida galite susidurti tokiu būdu.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] slaptažodis gaurav: sudo: systemctl: komanda nerasta gaurav@ubuntu:~$ 

Čia mes bandėme paleisti Ubuntu ugnies sieną (ufw) naudojant systemctl komandą ir įvyko klaida „systemctl: komanda nerasta“.

Taigi, ką daryti dabar, jei nenorite keisti dabartinio „Linux“ platinimo, kuris naudoja kitą centrinio valdymo priemonę, išskyrus sisteminis? Na, mes turime jums greitą pataisymą, kuris leistų jums išlaikyti dabartinį „Linux“ platinimą ir greitai ištaisyti klaidą.

Dabar stebėkime pataisymą.

Taisome klaidą „systemctl: komanda nerasta“.

Galiausiai, išanalizavę priežastis ir pagrindinius faktus apie problemą, pažvelkime į nagrinėjamos problemos sprendimą.

1 pataisymas: pakeitimas systemctl su paslauga komandą

Paprastas nagrinėjamos klaidos ištaisymas yra naudoti paslauga komandą, o ne klaidą sukėlusią systemctl komandą.

paslauga komanda padeda paleisti SystemV init scenarijus, kurį naudoja senesni Linux platinimai. Jei nenorite įdiegti sisteminis jūsų sistemoje esantis įrankis, šis pataisymas jums tikrai tiks.

Galite paleisti, iš naujo paleisti arba sustabdyti bet kokias „Linux“ platinimo paslaugas ir demonus naudodami paslauga komandą.

The paslauga komandą ir systemctl komandų funkciją taip pat, vienintelis skirtumas čia yra komandos suderinamumas su komunalinėmis paslaugomis, kurios yra atsakingos už grakštų jūsų sistemos veikimą.

Pažiūrėkime, paslauga komanda su iliustracija.

Bendroji sintaksė:

sudo paslauga [paslaugos_pavadinimas] [veiksmas]

Aukščiau pateiktoje sintaksėje [veiksmas] erdvė gali apimti tokius veiksmus kaip pradėti, sustabdyti, perkrauti arba statusą.

Vykdysime tą pačią komandą, kad paleistume ufw paslauga naudojant paslauga komandą.

sudo paslauga ufw start

Išvestis:

gaurav@ubuntu:~$ sudo paslauga ufw start gaurav@ubuntu:~$ sudo paslauga ufw status ● ufw.service – nesudėtinga ugniasienė Įkelta: įkelta (/lib/systemd/system/ufw.service; įjungta; tiekėjo iš anksto nustatytas: enab Active: aktyvus (išjungtas) nuo pirmadienio 2020-09-28 11:22:34 IST; prieš 1 val. 5 min. Dokumentai: man:ufw(8) Procesas: 333 ExecStart=/lib/ufw/ufw-init start tyliai (kodas=išjungta, būsena) =0/SU Pagrindinis PID: 333 (kodas=išėjęs, būsena=0/SĖKMĖS) 28 rugsėjis 11:22:34 ubuntu systemd[1]: paleista Nesudėtinga ugniasienė Įspėjimas: žurnalas buvo pasuktas nuo įrenginio paleidimo. Žurnalo išvestis yra nepilnas

Čia, paslauga Vietoj systemctl komandą ir viskas pavyko visiškai gerai.

Pažiūrėkime dar vieną pavyzdį paslauga komandą, kad ją tinkamai suprastumėte.

sudo paslaugos apache2 pradžia

Išvestis:

gaurav@ubuntu:~$ sudo paslaugos apache2 statusas ● apache2.service – Apache HTTP serveris įkeltas: įkeltas (/lib/systemd/system/apache2.service; įjungtas; tiekėjo iš anksto nustatytas: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktyvus: aktyvus (veikia) nuo pirmadienio 2020-09-28 11:22:47 IST; prieš 1 val. 16 min Procesas: 1172 ExecStart=/usr/sbin/apachectl start (kodas=) exited, status=0/SUCCE Pagrindinis PID: 1248 (apache2) Užduotys: 55 (riba: 4456) CGroup: /system.slice/apache2.service ├─1248 /usr/sbin/apache2 -k start ├─r1249 sbin/apache2 -k start └─1250 /usr/sbin/apache2 -k startas rugsėjo 28 d. 11:22:43 ubuntu systemd[1]: paleidžiamas Apache HTTP serveris... rugsėjo 28 d. 11:22:47 ubuntu apachectl[1172 ]: AH00112: Įspėjimas: DocumentRoot [/var/www Sep 28 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Nepavyko patikimai aptikti rugsėjo 28 d. 11:22:47 ubuntu systemd Serveris gaurav@ubuntu:~$ 

Mes panaudojome paslauga komandą, kad paleistumėte apache2 įrankį. Naudojant statusą variantas su paslauga komanda parodys esamą paslaugos būseną. Gausime išsamią informaciją, ar jis veikia, ar neveikia (neaktyvus).

Dabar naudokimės sustabdyti veiksmas, skirtas sustabdyti apache2 paslaugą naudojant paslauga komandą.

gaurav@ubuntu:~$ sudo paslauga apache2 sustabdyti gaurav@ubuntu:~$ sudo paslaugos apache2 būsenos eilutės 1--1...praleidžiant... ● apache2.service – Apache HTTP serveris įkeltas: įkeltas (/lib/systemd/ system/apache2.service; įjungta; tiekėjo iš anksto nustatytas: įjungtas) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Aktyvus: neaktyvus (miręs) nuo pirmadienio 2020-09-28 12 :42:06 IST; Prieš 1 s Procesas: 4928 ExecStop=/usr/sbin/apachectl stop (kodas=išėjo, status=0/SĖKMĖS) Procesas: 1172 ExecStart=/usr/sbin/apachectl start (kodas=exited, status=0/SUCCESS) Pagrindinis PID : 1248 (kodas=išėjęs, statusas=0/SĖKMĖS) 28 rugsėjis 11:22:43 ubuntu systemd[1]: paleidžiamas Apache HTTP serveris... rugsėjo 28 d. 11:22:47 ubuntu apachectl[1172]: AH00112: įspėjimas : DocumentRoot [/var/www/html] neegzistuoja Rugsėjo 28 d. 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Nepavyko patikimai nustatyti serverio visiškai kvalifikuoto domeno pavadinimo naudojant ::1. Nustatyti 'S Sep 28 11:22:47 ubuntu systemd[1]: paleido Apache HTTP serverį.

Iš aukščiau paaiškintų išsamių pavyzdžių galime daryti išvadą, kad galime naudoti šią komandą vietoj systemctl komanda valdyti ir stebėti kitus demonus ir paslaugas pagal Linux platinimą.

2 pataisymas: tikrinama sisteminis paketą

Kartais gali būti taip, kad tik sisteminis paketo įdiegimas gali išspręsti problemą. Pirmiausia turite patikrinti įrenginio diegimo būseną sisteminis paketą savo sistemoje.

Norėdami patikrinti paketą savo sistemoje, naudokite šią komandą.

sudo dpkg -l | grep systemd

Jei sisteminis utilty jau įdiegta, gausite panašią išvestį, kaip parodyta žemiau.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] slaptažodis gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 paprastas tarpprocesinis pranešimų siuntimo sistema (systemd --user integracija) ii libnss-systemd:amd64 237-3ubuntu10.42nsd64 dynamic module naudotojo ir grupės pavadinimo skyra ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 sistemos ir paslaugų tvarkyklė – PAM modulis ii libsystemd0:amd64 237-3ubuntu10.42 amd64 systemd paslaugų biblioteka ii libpam-systemd:amd64 libsystemd0:i37-68ubsystem2. ii networkd-dispatcher 1.7-0ubuntu3.3 all Dispečerio paslauga, skirta systemd-networkd ryšio būsenos pakeitimams ri python3-systemd 234-1build1 amd64 Python 3 susiejimas, skirtas systemd ii systemd 237-3ubuntu10.42 amd64 sistemai ir 237-3ubuntu10.42 amd64 sistemai 2d3-sysii 3ubuntu10.42 amd64 sistemos ir paslaugų tvarkyklė – SysV nuorodos gaurav@ubuntu:~$ 

Jei gaunate panašų išvestį, tai reiškia sisteminis yra įdiegtas jūsų sistemoje.

Jei jis neįdiegtas, galite jį įdiegti tokiu būdu.

sudo apt-get atnaujinimas
sudo apt-get install systemd

Jei jis įdiegtas, o klaida vis tiek išlieka, pabandykite ją įdiegti iš naujo naudodami šią komandą.

sudo apt-get install --reinstall systemd

Tai išspręs jūsų problemą įdiegus sisteminis naudingumas.

Išvada

Šioje pamokoje išmokome pataisyti „systemctl: komanda nerasta“. Galime drąsiai daryti išvadą, kad naudojant paslauga komandą vietoj systemctl yra gera idėja ir labai gerai išsprendžia problemą. Mes galime lengvai naudotis paslauga komandą supratę pamokoje pateiktus iliustruojančius pavyzdžius.