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