Jak opravit chybu „Systemctl Command Not Found“ v Linuxu

Rychlá oprava k vyřešení problému pomocí příkazu „systemctl“ a zavedení některých účinných alternativ k němu

systemctl protože je důležitým nástrojem v ekosystému Linuxu, je velmi běžné, že se můžete setkat s chybou „systemctl: příkaz nenalezen“, když se pokusíte spustit systemctl příkaz. To nemusí platit pro všechny distribuce Linuxu, ale pravděpodobně se s touto chybou můžete setkat, pokud používáte starší verzi distribuce Linuxu, která nepodporuje systemctl příkaz.

Problém, který se vám vyskytuje, je velmi běžný problém a lze jej snadno opravit. Takže se vůbec nebojte a projděte si celý tutoriál, abyste našli rychlou a snadnou opravu.

Nejprve se pokusíme problém pochopit a poté jej opravit.

Vhledy do systemctl a systemd

Protože chyba je s odkazem na systemctl příkazu, bylo by dobré znát základy tohoto příkazu, abyste lépe porozuměli opravě této chyby.

systemctl je nástroj příkazového řádku, který Linux nabízí, který se používá k monitorování a ovládání jednoho dalšího nástroje příkazového řádku s názvem „systemd‘. Také kontroluje a kontroluje správce systému spolu s „systemd‘ užitek.

Obecná syntaxe:

systemctl [volba] [název]

systemd je balík démonů, knihoven a utilit, které řídí programy, které se spouštějí při startu vašeho systému. systemd také dokáže zahájit důležitou úlohu, jako je spuštění deníku systémové aktivity.

Tento nástroj funguje jako nástroj pro centrální správu pro většinu operačních systémů založených na Linuxu, ne-li pro všechny.

Hlavní příčina chyby

Nejpravděpodobnější příčinou této chyby může být, že používáte starší verzi distribuce Linuxu. Mnoho starších verzí používá SysV init místo toho systemd užitečnost.

systemd Nástroj chybí v předchozích verzích Linuxu, protože jde o nedávný přírůstek do koše nástrojů poskytovaných Linuxem. systemctl je kompatibilní s funkcí a monitorováním s systemd a nebude fungovat s předchozími konfiguracemi jako SysVinit nebo Povýšenec.

Pokud nepoužíváte systemd, pak je tato chyba očekávána. Je to tak jednoduché a přímočaré.

S touto chybou se můžete setkat následujícím způsobem.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] heslo pro gaurav: sudo: systemctl: příkaz nenalezen gaurav@ubuntu:~$ 

Zde jsme se pokusili spustit Ubuntu Fire Wall (ufw) za použití systemctl a došlo k chybě „systemctl: příkaz nenalezen“.

Co tedy dělat nyní, pokud si nepřejete měnit svou současnou distribuci Linuxu, která používá jiný nástroj pro centrální správu než? systemd? Máme pro vás rychlou opravu, která vám umožní ponechat si vaši aktuální distribuci Linuxu a okamžitě opravit vaši chybu.

Podívejme se nyní na opravu.

Oprava chyby „systemctl: příkaz nenalezen“.

Nakonec se nyní podívejme na řešení daného problému po rozboru příčin a základních faktů o problému.

Oprava 1: Výměna systemctl s servis příkaz

Jednoduchou opravou dané chyby je použití servis příkaz místo chyby způsobující systemctl příkaz.

servis příkaz pomáhá při spuštění SystemV init skript, který používají starší distribuce Linuxu. Pokud si nepřejete nainstalovat systemd ve vašem systému, tato oprava vám jistě bude fungovat.

Můžete spustit, restartovat nebo zastavit jakékoli služby a démony ve vaší distribuci Linuxu pomocí servis příkaz.

The servis příkaz a systemctl příkaz funguje stejným způsobem, jediným rozdílem je zde kompatibilita příkazu s nástroji, které jsou zodpovědné za bezproblémový chod vašeho systému.

Pojďme se podívat na servis příkaz s ilustrací.

Obecná syntaxe:

sudo služba [název_služby] [akce]

Ve výše uvedené syntaxi je [akce] prostor může zahrnovat akce jako Start, stop, restartovat nebo postavení.

Spustíme stejný příkaz pro spuštění ufw službu pomocí servis příkaz.

sudo služba ufw start

Výstup:

gaurav@ubuntu:~$ služba sudo ufw start gaurav@ubuntu:~$ služba sudo stav ufw ● ufw.service - Nekomplikovaný firewall Načteno: načteno (/lib/systemd/system/ufw.service; povoleno; přednastaveno dodavatelem: enab Aktivní: aktivní (ukončeno) od Po 2020-09-28 11:22:34 IST; před 1h 5min Dokumenty: man:ufw(8) Proces: 333 ExecStart=/lib/ufw/ufw-init start tichý (code=ukončeno, stav =0/SU Hlavní PID: 333 (kód=ukončeno, stav=0/ÚSPĚCH) 28. září 11:22:34 ubuntu systemd[1]: Spuštěn Nekomplikovaný firewall. Varování: Žurnál byl od spuštění jednotky otočen. Výstup protokolu je neúplné

Tady, servis místo příkazu systemctl příkaz a dopadlo to naprosto dobře.

Podívejme se ještě na jeden příklad servis příkaz, abyste tomu správně porozuměli.

spuštění služby sudo apache2

Výstup:

gaurav@ubuntu:~$ služba sudo stav apache2 ● apache2.service – HTTP server Apache Načten: načten (/lib/systemd/system/apache2.service; povoleno; přednastaveno dodavatele: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktivní: aktivní (běžící) od Po 2020-09-28 11:22:47 IST; před 1h 16min Proces: 1172 ExecStart=/usr/sbin/apachectl start (code= ukončeno, stav=0/SUCCE Hlavní PID: 1248 (apache2) Úkoly: 55 (limit: 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. září 11:22:43 ubuntu systemd[1]: Spouštění serveru Apache HTTP Server... 28. září 11:22:47 ubuntu apachectl[1172 ]: AH00112: Upozornění: DocumentRoot [/var/www Sep 28 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Nelze spolehlivě det 28. září 11:22:47 ubuntu systemd The Apache Started HTTP Server. gaurav@ubuntu:~$ 

Použili jsme servis příkaz ke spuštění obslužného programu apache2. Za použití postavení možnost s servis příkaz zobrazí aktuální stav služby. Dostaneme podrobnosti, zda běží nebo je mrtvý (neaktivní).

Pojďme nyní použít stop akce k zastavení služby apache2 pomocí servis příkaz.

gaurav@ubuntu:~$ služba sudo apache2 stop gaurav@ubuntu:~$ služba sudo apache2 stavové řádky 1--1...přeskakování... ● apache2.service - HTTP server Apache Načten: načten (/lib/systemd/ system/apache2.service; povoleno; přednastaveno dodavatele: povoleno) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Aktivní: neaktivní (mrtvý) od Po 2020-09-28 12 :42:06 IST; Před 1s Proces: 4928 ExecStop=/usr/sbin/apachectl stop (kód=ukončeno, stav=0/ÚSPĚCH) Proces: 1172 ExecStart=/usr/sbin/apachectl start (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID : 1248 (kód=ukončeno, stav=0/ÚSPĚCH) 28. září 11:22:43 ubuntu systemd[1]: Spouštění serveru HTTP Apache... 28. září 11:22:47 ubuntu apachectl[1172]: AH00112: Upozornění : DocumentRoot [/var/www/html] neexistuje 28. září 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Nelze spolehlivě určit plně kvalifikovaný název domény serveru pomocí ::1. Nastavte 'S Sep 28 11:22:47 ubuntu systemd[1]: Started The Apache HTTP Server.

Z podrobných příkladů vysvětlených výše můžeme dojít k závěru, že tento příkaz můžeme použít místo příkazu systemctl příkaz k ovládání a sledování dalších démonů a služeb v rámci distribuce Linuxu.

Oprava 2: Kontrola systemd balík

Někdy se může stát, že pouze systemd instalace balíčku může problém vyřešit. Nejprve musíte zkontrolovat stav instalace systemd balíček ve vašem systému.

Pomocí následujícího příkazu zkontrolujte balíček ve vašem systému.

sudo dpkg -l | grep systemd

Pokud systemd utilty je již nainstalován, získáte výstup podobný tomu, který je uveden níže.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] heslo pro gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 jednoduchý meziprocesový systém zasílání zpráv (systemd -- uživatelská integrace) ii libnss-systemd:amd64 237-3ubuntu10.42 modul amd64 nss poskytující dynamické rozlišení názvů uživatelů a skupin ii libpam-systemd:amd64 237-3ubuntu10.42 správce systému a služeb amd64 - modul PAM ii libsystemd0:amd64 237-3ubuntu10.42 amd64 systemd knihovna obslužných programů ii libsystemd0:i386 systemd utilita2 knihovna i386 systemuntu 237 ii networkd-dispatcher 1.7-0ubuntu3.3 vše Dispečerská služba pro změny stavu připojení systemd-networkd ri python3-systemd 234-1build1 amd64 Vazby Pythonu 3 pro systemd ii systemd 237-3ubuntu10.42 amd64 systemd-sys a správce služeb amd64 systemd-37 3ubuntu10.42 správce systému a služeb amd64 - odkazy SysV gaurav@ubuntu:~$ 

Pokud dostanete výstup podobný tomuto, znamená to systemd je nainstalován ve vašem systému.

Pokud není nainstalován, můžete jej nainstalovat následujícím způsobem.

aktualizace sudo apt-get
sudo apt-get install systemd

Pokud je nainstalován a chyba stále přetrvává, zkuste jej znovu nainstalovat pomocí následujícího příkazu.

sudo apt-get install --reinstall systemd

To vyřeší váš problém instalací systemd užitečnost.

Závěr

V tomto tutoriálu jsme se naučili opravit „systemctl: command not found“. Můžeme bezpečně konstatovat, že pomocí servis příkaz místo systemctl je to dobrý nápad a řeší problém velmi dobře. Můžeme snadno použít servis příkaz po pochopení názorných příkladů uvedených v tutoriálu.