Rýchla oprava na vyriešenie problému pomocou príkazu „systemctl“ a zavedenie niektorých účinných alternatív k nemu
systemctl
keďže ide o dôležitý nástroj v ekosystéme Linuxu, je veľmi bežné, že sa pri pokuse o spustenie príkazu môže vyskytnúť chyba „systemctl: command not found“ systemctl
príkaz. Nemusí to platiť pre všetky distribúcie Linuxu, ale pravdepodobne sa s touto chybou môžete stretnúť, keď používate staršiu verziu distribúcie Linuxu, ktorá nepodporuje systemctl
príkaz.
Problém, ktorý sa vám vyskytuje, je veľmi bežný problém a možno ho ľahko vyriešiť. Takže sa vôbec nebojte a prejdite si celý návod, aby ste našli rýchlu a jednoduchú opravu.
Najprv sa pokúsime problém pochopiť a potom ho vyriešiť.
Prehľady do systemctl
a systemd
Keďže chyba je s odkazom na systemctl
príkaz, bolo by dobré poznať základy tohto príkazu, aby ste lepšie porozumeli oprave tejto chyby.
systemctl
je nástroj príkazového riadka, ktorý Linux ponúka a ktorý sa používa na monitorovanie a ovládanie jedného ďalšieho nástroja príkazového riadka s názvom „systemd
‘. Tiež kontroluje a kontroluje správcu systému spolu s „systemd
‘úžitok.
Všeobecná syntax:
systemctl [možnosť] [názov]
systemd
je balík démonov, knižníc a pomôcok, ktoré riadia programy, ktoré sa spúšťajú pri spustení systému. systemd
tiež dokáže spustiť dôležitú úlohu, ako je spustenie denníka systémovej aktivity.
Tento nástroj funguje ako nástroj centrálnej správy pre väčšinu operačných systémov založených na Linuxe, ak nie pre všetky.
Hlavná príčina chyby
Najpravdepodobnejšou príčinou tejto chyby môže byť, že používate staršiu verziu distribúcie Linuxu. Mnohé zo starších verzií používajú SysV init
namiesto toho systemd
užitočnosť.
systemd
nástroj chýba v predchádzajúcich verziách Linuxu, pretože ide o nedávny prírastok do koša nástrojov poskytovaných systémom Linux. systemctl
je kompatibilný s funkciou a monitorovaním s systemd
nástroj a nebude fungovať s predchádzajúcimi konfiguráciami, ako je SysV
init
alebo Začínajúci
.
Ak nepoužívate systemd
, potom sa táto chyba očakáva. Je to také jednoduché a priamočiare.
S touto chybou sa môžete stretnúť nasledujúcim spôsobom.
gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] heslo pre gaurav: sudo: systemctl: príkaz nenájdený gaurav@ubuntu:~$
Tu sme sa pokúsili spustiť Ubuntu Fire Wall (ufw
) pomocou systemctl
a vyskytla sa chyba „systemctl: príkaz nenájdený“.
Čo teda robiť teraz, ak si neželáte zmeniť svoju súčasnú distribúciu Linuxu, ktorá používa inú centrálnu pomôcku na správu ako? systemd
? Máme pre vás rýchlu opravu, ktorá by vám umožnila ponechať si aktuálnu distribúciu Linuxu a okamžite opraviť vašu chybu.
Pozrime sa teraz na opravu.
Oprava chyby „systemctl: príkaz nenájdený“.
Na záver sa teraz pozrime na riešenie daného problému po rozbore príčin a základných faktov o probléme.
Oprava 1: Výmena systemctl
s služby
príkaz
Jednoduchou opravou danej chyby je použitie služby
príkaz namiesto toho, čo spôsobuje chybu systemctl
príkaz.
služby
príkaz pomáha pri spustení SystemV init
skript, ktorý používajú staršie distribúcie Linuxu. Ak si neželáte nainštalovať systemd
vo vašom systéme, táto oprava vám určite pomôže.
Môžete spustiť, reštartovať alebo zastaviť akékoľvek služby a démony vo vašej distribúcii Linuxu pomocou služby
príkaz.
The služby
príkaz a systemctl
príkaz funguje rovnakým spôsobom, jediným rozdielom je tu kompatibilita príkazu s nástrojmi, ktoré sú zodpovedné za bezproblémový chod vášho systému.
Pozrime sa na služby
príkaz s ilustráciou.
Všeobecná syntax:
sudo služba [názov_služby] [akcia]
Vo vyššie uvedenej syntaxi je [akcia]
priestor môže zahŕňať akcie ako napr začať
, zastaviť
, reštart
alebo postavenie
.
Spustíme rovnaký príkaz na spustenie ufw
službu pomocou služby
príkaz.
sudo služba ufw štart
Výkon:
gaurav@ubuntu:~$ služba sudo ufw štart gaurav@ubuntu:~$ služba sudo stav ufw ● ufw.service - Nekomplikovaný firewall Načítaný: načítaný (/lib/systemd/system/ufw.service; povolené; prednastavené výrobcom: enab Aktívne: aktívne (ukončené) od po =0/SU Hlavné PID: 333 (kód=ukončené, stav=0/ÚSPECH) 28. september 11:22:34 ubuntu systemd[1]: Spustený Nekomplikovaný firewall. Varovanie: Denník bol otočený od spustenia jednotky. Výstup denníka je neúplné
Tu, služby
namiesto príkazu systemctl
príkaz a dopadlo to úplne dobre.
Pozrime sa ešte na jeden príklad služby
príkaz, aby ste tomu správne porozumeli.
spustenie služby sudo apache2
Výkon:
gaurav@ubuntu:~$ služba sudo stav apache2 ● apache2.service - HTTP server Apache načítaný: načítaný (/lib/systemd/system/apache2.service; povolené; prednastavené výrobcom: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktívny: aktívny (spustený) od po ukončené, stav=0/SUCCE Hlavné PID: 1248 (apache2) Úlohy: 55 (limit: 4456) CGroup: /system.slice/apache2.service ├─1248 /usr/sbin/apache2 -k štart ├─1249 /usr/ sbin/apache2 -k start └─1250 /usr/sbin/apache2 -k start 28. september 11:22:43 ubuntu systemd[1]: Spúšťa sa server Apache HTTP Server... 28. september 11:22:47 ubuntu apachectl[1172 ]: AH00112: Upozornenie: DocumentRoot [/var/www Sep 28 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Nepodarilo sa spoľahlivo zistiť 28. september 11:22:47 ubuntu systemd [1]: Spustený HTTP Server. gaurav@ubuntu:~$
Použili sme služby
príkaz na spustenie pomôcky apache2. Pomocou postavenie
možnosť s služby
príkaz zobrazí aktuálny stav služby. Dozvieme sa podrobnosti o tom, či je spustený alebo mŕtvy (neaktívny).
Poďme teraz použiť zastaviť
akcia na zastavenie služby apache2 pomocou služby
príkaz.
gaurav@ubuntu:~$ služba sudo apache2 stop gaurav@ubuntu:~$ služba sudo apache2 stavové riadky 1--1...preskakovanie... ● apache2.service - HTTP server Apache načítaný: načítaný (/lib/systemd/ system/apache2.service; povolené; prednastavené dodávateľom: povolené) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Aktívne: neaktívne (mŕtve) od pondelka 28.09.2020 12 :42:06 IST; Pred 1 s Proces: 4928 ExecStop=/usr/sbin/apachectl stop (kód=ukončený, stav=0/ÚSPEŠNÝ) Proces: 1172 ExecStart=/usr/sbin/apachectl štart (kód=ukončený, stav=0/ÚSPEŠNÝ) Hlavné PID : 1248 (kód=ukončený, stav=0/ÚSPECH) 28. september 11:22:43 ubuntu systemd[1]: Spúšťa sa server Apache HTTP Server... 28. september 11:22:47 ubuntu apachectl[1172]: AH00112: Upozornenie : DocumentRoot [/var/www/html] neexistuje 28. septembra 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Nepodarilo sa spoľahlivo určiť úplný názov domény servera pomocou ::1. Nastavte 'S Sep 28 11:22:47 ubuntu systemd[1]: Spustený server Apache HTTP Server.
Z podrobných príkladov vysvetlených vyššie môžeme konštatovať, že tento príkaz môžeme použiť namiesto príkazu systemctl
príkaz na ovládanie a monitorovanie iných démonov a služieb v rámci distribúcie Linuxu.
Oprava 2: Kontrola systemd
balík
Niekedy sa môže stať, že iba ten systemd
Inštalácia balíka môže problém vyriešiť. Najprv musíte skontrolovať stav inštalácie systemd
balík vo vašom systéme.
Na kontrolu balíka vo vašom systéme použite nasledujúci príkaz.
sudo dpkg -l | grep systemd
Ak systemd
utilty je už nainštalovaný, dostanete výstup podobný tomu, ktorý je uvedený nižšie.
gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] heslo pre gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 jednoduchý medziprocesový systém zasielania správ (systemd --používateľská integrácia) ii libnss-systemd:amd64 237-3ubuntu10.42 modul amd64 poskytujúci dynamickú nss rozlíšenie názvov používateľov a skupín ii libpam-systemd:amd64 237-3ubuntu10.42 správca systému a služieb amd64 - modul PAM ii libsystemd0:amd64 237-3ubuntu10.42 amd64 systemd knižnica nástrojov ii libsystemd0:i386 systemd utility2 knižnica i386 systemuntu 237 ii networkd-dispatcher 1.7-0ubuntu3.3 všetko Dispečerská služba pre zmeny stavu pripojenia systemd-networkd ri python3-systemd 234-1build1 amd64 Väzby Python 3 pre systemd ii systemd 237-3ubuntu10.42 amd64 systemd37 systém a správca služieb amd64 3ubuntu10.42 správca systému a služieb amd64 - odkazy SysV gaurav@ubuntu:~$
Ak dostanete výstup podobný tomuto, znamená to systemd
je nainštalovaný vo vašom systéme.
Ak nie je nainštalovaný, môžete ho nainštalovať nasledujúcim spôsobom.
aktualizácia sudo apt-get
sudo apt-get install systemd
Ak je nainštalovaný a chyba stále pretrváva, skúste ho znova nainštalovať pomocou nasledujúceho príkazu.
sudo apt-get install --reinstall systemd
Toto vyrieši váš problém inštaláciou systemd
užitočnosť.
Záver
V tomto návode sme sa naučili opraviť „systemctl: príkaz nenájdený“. Môžeme s istotou konštatovať, že pomocou služby
príkaz namiesto príkazu systemctl
je to dobrý nápad a veľmi dobre rieši problém. Môžeme ľahko použiť služby
príkaz po pochopení názorných príkladov zobrazených v návode.