Kako popraviti pogrešku "Systemctl Command Not Found" u Linuxu

Brzo rješenje za rješavanje problema s naredbom 'systemctl' i uvođenjem nekih učinkovitih alternativa

systemctl budući da je važan uslužni program u Linux ekosustavu, vrlo je uobičajeno da možete naići na problem pogreške "systemctl: command not found" kada pokušate pokrenuti systemctl naredba. To možda nije slučaj za sve distribucije Linuxa, ali vjerojatno se možete susresti s ovom pogreškom kada koristite stariju verziju distribucije Linuxa koja ne podržava systemctl naredba.

Problem koji vam se javlja vrlo je čest problem i može se lako riješiti. Dakle, ne brinite uopće i samo prođite kroz kompletan vodič kako biste pronašli brz i jednostavan popravak.

Prvo ćemo pokušati razumjeti problem, a zatim ga riješiti.

Uvid u systemctl i systemd

Kako se pogreška odnosi na systemctl naredbu, bilo bi dobro poznavati osnove ove naredbe kako biste bolje razumjeli popravak ove pogreške.

systemctl je uslužni program naredbenog retka koji nudi Linux, koji se koristi za nadzor i kontrolu još jednog uslužnog programa naredbenog retka pod nazivom 'systemd‘. Također provjerava i kontrolira upravitelja sustava zajedno s "systemd' korisnost.

Opća sintaksa:

systemctl [opcija] [naziv]

systemd je skup demona, knjižnica i uslužnih programa koji kontrolira programe koji se pokreću kada se vaš sustav pokrene. systemd također uspijeva pokrenuti važan posao poput pokretanja dnevnika aktivnosti sustava.

Ovaj uslužni program funkcionira kao središnji uslužni program za upravljanje za većinu ako ne i za sve operacijske sustave temeljene na Linuxu.

Osnovni uzrok pogreške

Najvjerojatniji uzrok ove pogreške mogao bi biti taj što koristite stariju verziju distribucije Linuxa. Mnoge starije verzije koriste SysV init umjesto od systemd korisnost.

systemd uslužni program je odsutan u prethodnim verzijama Linuxa jer je nedavni dodatak košarici uslužnih programa koje nudi Linux. systemctl kompatibilan je za funkcioniranje i praćenje s systemd uslužni program i neće raditi s prethodnim konfiguracijama poput SysVu tome ili Laktaš.

Ako ne koristite systemd, onda je ova greška očekivana. To je tako jednostavno i jasno.

Na ovu grešku možete naići na sljedeći način.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] lozinka za gaurav: sudo: systemctl: naredba nije pronađena gaurav@ubuntu:~$ 

Ovdje smo pokušali pokrenuti Ubuntu Fire Wall (ufw) koristiti systemctl naredbu i naišao na pogrešku "systemctl: command not found".

Dakle, što učiniti sada ako ne želite promijeniti svoju trenutnu distribuciju Linuxa koja koristi neki drugi uslužni program za središnje upravljanje osim systemd? Pa, imamo brzi popravak za vas koji bi vam omogućio da zadržite svoju trenutnu distribuciju Linuxa, kao i ispravite svoju pogrešku u trenu.

Pogledajmo sada popravak.

Ispravljanje pogreške "systemctl: naredba nije pronađena".

Konačno, pogledajmo sada rješenje problematičnog problema nakon analize uzroka i osnovnih činjenica o problemu.

Popravak 1: Zamjena systemctl s servis naredba

Jednostavno rješenje za dotičnu pogrešku je korištenje servis naredbu umjesto greške koja uzrokuje systemctl naredba.

servis naredba pomaže u pokretanju SystemV init skriptu koju koriste starije distribucije Linuxa. Ako ne želite instalirati systemd uslužni program na vašem sustavu, ovaj će vam popravak sigurno raditi.

Možete pokrenuti, ponovno pokrenuti ili zaustaviti sve usluge i demone u svojoj distribuciji Linuxa pomoću servis naredba.

The servis zapovijed i systemctl naredbena funkcija na isti način, jedina razlika ovdje je kompatibilnost naredbe s uslužnim programima koji su odgovorni za graciozan rad vašeg sustava.

Hajde da vidimo servis naredba s ilustracijom.

Opća sintaksa:

sudo usluga [naziv_usluge] [akcija]

U gornjoj sintaksi, [akcijski] prostor može uključivati ​​radnje kao što su početak, Stop, ponovno pokrenuti ili status.

Pokrenut ćemo istu naredbu za pokretanje ufw usluga pomoću servis naredba.

sudo service ufw start

Izlaz:

gaurav@ubuntu:~$ sudo service ufw start gaurav@ubuntu:~$ sudo service ufw status ● ufw.service - Nekomplicirani vatrozid Učitano: učitano (/lib/systemd/system/ufw.service; omogućeno; unaprijed postavljeno dobavljača: enab Aktivno: aktivan (izišao) od pon 28.09.2020 11:22:34 IST; prije 1h 5min Dokumenti: man:ufw(8) Proces: 333 ExecStart=/lib/ufw/ufw-init tihi početak (kod=izišao, status =0/SU Glavni PID: 333 (kod=izišao, status=0/USPJEH) 28. rujna 11:22:34 ubuntu systemd[1]: Pokrenut Nekomplicirani vatrozid. Upozorenje: Dnevnik je rotiran od pokretanja jedinice. Izlaz dnevnika je nepotpuno

Evo, servis naredba se koristi umjesto systemctl naredba i ispalo je potpuno dobro.

Pogledajmo još jedan primjer servis zapovijed da se to ispravno razumije.

sudo servis apache2 start

Izlaz:

gaurav@ubuntu:~$ sudo service apache2 status ● apache2.service - Apache HTTP poslužitelj Učitano: učitano (/lib/systemd/system/apache2.service; omogućeno; unaprijed postavljeno dobavljača: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktivan: aktivan (u radu) od pon 2020-09-28 11:22:47 IST; prije 1h 16min Proces: 1172 ExecStart=/usr/sbin/apachectl start (code= izašao, status=0/SUCCE Glavni PID: 1248 (apache2) Zadaci: 55 (ograničenje: 4456) CGroup: /system.slice/apache2.service ├─1248 /usr/sbin/apache2 -k početak ├─1249 /usr/ sbin/apache2 -k start └─1250 /usr/sbin/apache2 -k start 28. rujna 11:22:43 ubuntu systemd[1]: Pokretanje Apache HTTP poslužitelja... 28. rujna 11:22:47 ubuntu apachectl[1172 ]: AH00112: Upozorenje: DocumentRoot [/var/www 28. rujna 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Ne može se pouzdano det 28. rujna 11:22:47 ubuntu pokrenuo je HTTP Systemd [1] Poslužitelj. gaurav@ubuntu:~$ 

Koristili smo servis naredbu za pokretanje uslužnog programa apache2. Koristiti status opcija s servis naredba će prikazati trenutni status usluge. Dobit ćemo pojedinosti radi li se ili je mrtav (neaktivan).

Koristimo sada Stop radnju za zaustavljanje usluge apache2 pomoću servis naredba.

gaurav@ubuntu:~$ sudo service apache2 stop gaurav@ubuntu:~$ sudo service apache2 statusne linije 1--1...preskakanje... ● apache2.service - Apache HTTP poslužitelj Učitano: učitano (/lib/systemd/ system/apache2.service; omogućeno; unaprijed postavljeno dobavljača: omogućeno) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Aktivno: neaktivno (mrtvo) od pon 28.09.2020 12 :42:06 IST; Prije 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 (code=exited, status=0/SUCCESS) 28. rujna 11:22:43 ubuntu systemd[1]: Pokretanje Apache HTTP poslužitelja... 28. rujna 11:22:47 ubuntu apachectl[1172]: AH00112: Upozorenje : DocumentRoot [/var/www/html] ne postoji 28. rujna 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Nije moguće pouzdano odrediti potpuno kvalificirani naziv domene poslužitelja, koristeći ::1. Postavite 'S 28. rujna 11:22:47 ubuntu systemd[1]: Pokrenuo Apache HTTP poslužitelj.

Iz gore objašnjenih detaljnih primjera možemo zaključiti da ovu naredbu možemo koristiti umjesto systemctl naredba za kontrolu i nadzor drugih demona i usluga pod distribucijom Linuxa.

Popravak 2: Provjera systemd paket

Ponekad se može dogoditi da samo systemd instalacija paketa može riješiti problem. Prvo morate provjeriti status instalacije systemd paket na vašem sustavu.

Koristite sljedeću naredbu da provjerite paket na vašem sustavu.

sudo dpkg -l | grep systemd

Ako je systemd uslužni program je već instaliran, dobit ćete izlaz sličan kao što je prikazano u nastavku.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] lozinka za gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 jednostavan međuprocesni sustav za razmjenu poruka (systemd --korisnička integracija) ii libnss-systemd:amd64 237-3ubuntu10.42 modul amd64 dynamics razlučivost imena korisnika i grupe ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 upravitelj sustava i usluga - PAM modul ii libsystemd0:amd64 237-3ubuntu10.42 amd64 systemd utility knjižnica ii libsystemd0:i386 systemd biblioteka i386 u137 u137 ii networkd-dispatcher 1.7-0ubuntu3.3 sve usluge dispečera za promjene statusa veze systemd-networkd ri python3-systemd 234-1build1 amd64 Python 3 vezovi za systemd ii systemd 237-3ubuntu10.42 amd64 systemd3-7 upravitelj sustava i usluga ii 3ubuntu10.42 amd64 upravitelj sustava i usluga - SysV veze gaurav@ubuntu:~$ 

Ako dobijete izlaz sličan ovome, to znači da systemd je instaliran na vašem sustavu.

Ako nije instaliran, možete ga instalirati na sljedeći način.

sudo apt-dobi ažuriranje
sudo apt-get install systemd

Ako je instaliran, a pogreška i dalje postoji, pokušajte ga ponovno instalirati pomoću sljedeće naredbe.

sudo apt-get install --reinstall systemd

To će riješiti vaš problem instaliranjem systemd korisnost.

Zaključak

Naučili smo popraviti "systemctl: naredba nije pronađena" u ovom vodiču. Sa sigurnošću možemo zaključiti da korištenjem servis zapovijed umjesto systemctl je dobra ideja i vrlo dobro rješava problem. Lako možemo koristiti servis naredbu nakon razumijevanja ilustrativnih primjera prikazanih u vodiču.