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