Kako popraviti napako "Systemctl Command Not Found" v Linuxu

Hiter popravek za rešitev težave z ukazom 'systemctl' in uvedbo nekaterih učinkovitih alternativ zanj

systemctl ker je pomemben pripomoček v ekosistemu Linux, je zelo pogosto, da lahko naletite na težavo z napako »systemctl: ukaz ni najden«, ko poskušate zagnati systemctl ukaz. To morda ne velja za vse distribucije Linuxa, vendar lahko verjetno naletite na to napako, ko uporabljate starejšo različico distribucije Linuxa, ki ne podpira systemctl ukaz.

Težava, ki se vam pojavi, je zelo pogosta in jo je mogoče enostavno odpraviti. Zato ne skrbite in preprosto preglejte celotno vadnico, da poiščete hitro in enostavno rešitev.

Najprej bomo poskušali razumeti težavo in jo nato odpraviti.

Vpogled v systemctl in systemd

Ker je napaka v zvezi z systemctl ukaz, bi bilo dobro poznati osnove tega ukaza, da bi bolje razumeli popravek te napake.

systemctl je pripomoček ukazne vrstice, ki ga ponuja Linux, ki se uporablja za spremljanje in nadzor enega drugega pripomočka ukazne vrstice z imenom 'systemd‘. Prav tako pregleduje in nadzira upravitelja sistema skupaj z "systemd'uporabnost.

Splošna sintaksa:

systemctl [možnost] [ime]

systemd je sveženj demonov, knjižnic in pripomočkov, ki nadzoruje programe, ki se izvajajo, ko se vaš sistem zažene. systemd uspe tudi začeti pomembno delo, kot je začetek dnevnika sistemske dejavnosti.

Ta pripomoček deluje kot osrednji pripomoček za upravljanje za večino, če ne za vse operacijske sisteme, ki temeljijo na Linuxu.

Osnovni vzrok napake

Najverjetnejši vzrok za to napako je lahko ta, da uporabljate starejšo različico distribucije Linuxa. Številne starejše različice uporabljajo SysV init namesto systemd uporabnost.

systemd pripomoček v prejšnjih različicah Linuxa ni, saj je nedavni dodatek v košarici pripomočkov, ki jih ponuja Linux. systemctl je združljiv z delovanjem in spremljanjem systemd pripomoček in ne bo deloval s prejšnjimi konfiguracijami, kot je SysVv oz Nagnjenec.

Če ne uporabljate systemd, potem je ta napaka pričakovana. To je tako preprosto in naravnost.

Na to napako lahko naletite na naslednji način.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] geslo za gaurav: sudo: systemctl: ukaz ni najden gaurav@ubuntu:~$ 

Tukaj smo poskušali zagnati požarni zid Ubuntu (ufw) uporabljati systemctl ukaz in naletel na napako »systemctl: ukaz ni najden«.

Torej, kaj storiti zdaj, če ne želite spremeniti svoje trenutne distribucije Linuxa, ki uporablja drug pripomoček za centralno upravljanje, razen systemd? No, za vas imamo hiter popravek, ki bi vam omogočil, da obdržite svojo trenutno distribucijo Linuxa in odpravite svojo napako v kratkem času.

Oglejmo si zdaj popravek.

Odpravljanje napake »systemctl: ukaz ni najden«.

Na koncu si poglejmo rešitev zadevnega problema po analizi vzrokov in osnovnih dejstev o problemu.

Popravek 1: Zamenjava systemctl z storitev ukaz

Preprosta rešitev za zadevno napako je uporaba storitev ukaz namesto napake, ki je povzročila systemctl ukaz.

storitev ukaz pomaga pri izvajanju SystemV init skript, ki ga uporabljajo starejše distribucije Linuxa. Če ne želite namestiti systemd pripomoček na vašem sistemu, bo ta popravek zagotovo deloval za vas.

Vse storitve in demone v vaši distribuciji Linuxa lahko zaženete, znova zaženete ali ustavite z uporabo storitev ukaz.

The storitev ukaz in systemctl ukaz deluje na enak način, edina razlika tukaj je združljivost ukaza s pripomočki, ki so odgovorni za elegantno delovanje vašega sistema.

Poglejmo si storitev ukaz z ilustracijo.

Splošna sintaksa:

storitev sudo [ime_storitve] [dejanje]

V zgornji sintaksi je [akcija] prostor lahko vključuje dejanja, kot so začnite, ustavi, ponovni zagon oz stanje.

Za zagon bomo zagnali isti ukaz ufw storitev z uporabo storitev ukaz.

sudo storitev ufw start

Izhod:

gaurav@ubuntu:~$ sudo service ufw start gaurav@ubuntu:~$ sudo service ufw status ● ufw.service - nezapleten požarni zid Naloženo: naloženo (/lib/systemd/system/ufw.service; omogočeno; prednastavitev ponudnika: enab Aktivno: aktiven (zapustil) od ponedeljka 28.09.2020 11:22:34 IST; pred 1 h 5 min Dokumenti: man:ufw(8) Proces: 333 ExecStart=/lib/ufw/ufw-init zagon tiho (koda=izhod, status =0/SU Glavni PID: 333 (koda=izhod, status=0/USPEH) 28. sep. 11:22:34 ubuntu systemd[1]: Zagnan Nezapleten požarni zid. Opozorilo: Dnevnik je bil zasukan od začetka enote. Izhod dnevnika je nepopolna

Tukaj, storitev namesto ukaza se uporablja ukaz systemctl ukaz in je delovalo popolnoma v redu.

Poglejmo si še en primer storitev ukaz, da bi ga pravilno razumeli.

zagon storitve sudo apache2

Izhod:

gaurav@ubuntu:~$ sudo service apache2 status ● apache2.service - strežnik HTTP Apache je naložen: naložen (/lib/systemd/system/apache2.service; omogočeno; prednastavitev ponudnika: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktiven: aktiven (teče) od ponedeljka 28.09.2020 11:22:47 IST; pred 1 h 16 min Proces: 1172 ExecStart=/usr/sbin/apachectl start (code= izstopil, status=0/SUCCE Glavni PID: 1248 (apache2) Naloge: 55 (omejitev: 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. sep. 11:22:43 ubuntu systemd[1]: Zagon strežnika HTTP Apache... 28. sep. 11:22:47 ubuntu apachectl[1172 ]: AH00112: Opozorilo: DocumentRoot [/var/www, 28. sep. 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: ni bilo mogoče zanesljivo preveriti 28. sep. 11:22:47 ubuntu je zagnal HTTP sistemski d[1]: Strežnik. gaurav@ubuntu:~$ 

Uporabili smo storitev ukaz za zagon pripomočka apache2. Uporabljati stanje možnost z storitev ukaz bo prikazal trenutno stanje storitve. Dobili bomo podrobnosti, ali deluje ali je mrtev (neaktiven).

Zdaj pa uporabimo ustavi dejanje za zaustavitev storitve apache2 z uporabo storitev ukaz.

gaurav@ubuntu:~$ sudo storitev apache2 stop gaurav@ubuntu:~$ sudo storitev apache2 vrstice stanja 1--1...preskok... ● apache2.service - strežnik Apache HTTP naložen: naložen (/lib/systemd/ system/apache2.service; omogočeno; prednastavitev ponudnika: omogočena) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Aktiven: neaktiven (mrtev) od pon. 28. 9. 2020 12 :42:06 IST; Pred 1 s Proces: 4928 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Proces: 1172 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Glavni PID : 1248 (koda=izhod, status=0/USPEH) 28. sep. 11:22:43 ubuntu systemd[1]: Zagon strežnika HTTP Apache... 28. sep. 11:22:47 ubuntu apachectl[1172]: AH00112: Opozorilo : DocumentRoot [/var/www/html] ne obstaja 28. sep 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: ni bilo mogoče zanesljivo določiti polnega imena domene strežnika z uporabo ::1. Nastavite 'S 28. sep. 11:22:47 ubuntu systemd[1]: Zagnal strežnik HTTP Apache.

Iz zgoraj razloženih podrobnih primerov lahko sklepamo, da lahko namesto ukaza uporabimo ta ukaz systemctl ukaz za nadzor in spremljanje drugih demonov in storitev v distribuciji Linuxa.

2. popravek: preverjanje systemd paket

Včasih se lahko zgodi, da le systemd namestitev paketa lahko odpravi težavo. Najprej morate preveriti stanje namestitve systemd paket na vašem sistemu.

Uporabite naslednji ukaz, da preverite paket v vašem sistemu.

sudo dpkg -l | grep systemd

Če systemd pripomoček je že nameščen, boste dobili izhod, podoben, kot je prikazano spodaj.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] geslo za gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 preprost medprocesni sistem za sporočanje (systemd --user integracija) ii libnss-systemd:amd64 237-3ubuntu10.42 modul amd64 dynamics ločljivost imen uporabnikov in skupine ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 sistemski in storitveni upravitelj - modul PAM ii libsystemd0:amd64 237-3ubuntu10.42 amd64 knjižnica pomožnih programov systemd ii libsystemd0:i386 sistemska knjižnica i137-i386 u138 ii networkd-dispatcher 1.7-0ubuntu3.3 vse dispečerske storitve za systemd-networkd spremembe statusa povezave ri python3-systemd 234-1build1 amd64 Python 3 vezave za systemd ii systemd 237-3ubuntu10.42 amd64 sistemski upravitelj sistema in storitev-ys iv 3ubuntu10.42 amd64 sistemski in servisni upravitelj - SysV povezave gaurav@ubuntu:~$ 

Če dobite podoben izhod, to pomeni systemd je nameščen v vašem sistemu.

Če ni nameščen, ga lahko namestite na naslednji način.

sudo apt-pridobi posodobitev
sudo apt-get install systemd

Če je nameščen in se napaka še vedno pojavlja, ga poskusite znova namestiti z naslednjim ukazom.

sudo apt-get install --reinstall systemd

To bo rešilo vašo težavo z namestitvijo systemd uporabnost.

Zaključek

V tej vadnici smo se naučili popraviti »systemctl: ukaz ni najden«. Varno lahko sklepamo, da z uporabo storitev ukaz namesto systemctl je dobra ideja in zelo dobro rešuje težavo. Z lahkoto lahko uporabimo storitev po razumevanju ilustrativnih primerov, prikazanih v vadnici.