Jak naprawić błąd „Nie znaleziono polecenia Systemctl” w systemie Linux?

Szybkie rozwiązanie problemu za pomocą polecenia „systemctl” i wprowadzenie do niego skutecznych alternatyw

systemowy będąc ważnym narzędziem w ekosystemie Linuksa, bardzo często możesz napotkać błąd „systemctl: command not found” podczas próby uruchomienia systemowy Komenda. Może to nie dotyczyć wszystkich dystrybucji Linuksa, ale prawdopodobnie możesz napotkać ten błąd, gdy używasz starszej wersji dystrybucji Linuksa, która nie obsługuje systemowy Komenda.

Pojawiający się problem jest bardzo częstym problemem i można go łatwo naprawić. Więc nie martw się i po prostu przejdź przez cały samouczek, aby znaleźć szybkie i łatwe rozwiązanie.

Postaramy się najpierw zrozumieć problem, a następnie go naprawić.

Wgląd w systemowy oraz systemd

Ponieważ błąd jest w odniesieniu do systemowy polecenie, dobrze byłoby znać podstawy tego polecenia, aby lepiej zrozumieć poprawkę tego błędu.

systemowy to narzędzie wiersza poleceń oferowane przez system Linux, które służy do monitorowania i kontrolowania innego narzędzia wiersza poleceń o nazwie „systemd„. Sprawdza również i kontroluje menedżera systemu wraz z „systemd' pożytek.

Ogólna składnia:

systemctl [opcja] [nazwa]

systemd to pakiet demonów, bibliotek i narzędzi kontrolujących programy uruchamiane podczas uruchamiania systemu. systemd udaje się również zainicjować ważne zadanie, takie jak uruchomienie dziennika aktywności systemu.

To narzędzie działa jako narzędzie centralnego zarządzania dla większości, jeśli nie wszystkich systemów operacyjnych opartych na systemie Linux.

Główna przyczyna błędu

Najbardziej prawdopodobną przyczyną tego błędu może być to, że używasz starszej wersji dystrybucji Linuksa. Wiele starszych wersji używa Rozpoczęcie SysV zamiast tego systemd pożytek.

systemd Narzędzie jest nieobecne w poprzednich wersjach Linuksa, ponieważ jest ostatnim dodatkiem do koszyka narzędzi dostarczanych przez Linuksa. systemowy jest kompatybilny z funkcjami i monitorowaniem z systemd narzędzie i nie będzie działać z poprzednimi konfiguracjami, takimi jak SysVw tym lub Dorobkiewicz.

Jeśli nie używasz systemd, wtedy ten błąd jest oczekiwany. To takie proste i proste.

Możesz napotkać ten błąd w następujący sposób.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] hasło dla gaurav: sudo: systemctl: polecenie nie zostało znalezione gaurav@ubuntu:~$ 

Tutaj próbowaliśmy uruchomić Ubuntu Fire Wall (ufw) używając systemowy polecenie i napotkał błąd „systemctl: polecenie nie znaleziono”.

Co więc zrobić teraz, jeśli nie chcesz zmieniać swojej obecnej dystrybucji Linuksa, która używa innego narzędzia do centralnego zarządzania niż systemd? Cóż, mamy dla ciebie szybką naprawę, która pozwoli ci zachować obecną dystrybucję Linuksa, a także naprawić błąd w mgnieniu oka.

Przyjrzyjmy się teraz poprawce.

Naprawianie błędu „systemctl: nie znaleziono polecenia”

Na koniec spójrzmy teraz na rozwiązanie danego problemu po przeanalizowaniu przyczyn i podstawowych faktów dotyczących problemu.

Poprawka 1: Wymiana systemowy z serwis Komenda

Prostym rozwiązaniem tego błędu jest użycie serwis polecenie zamiast powodującego błąd systemowy Komenda.

serwis polecenie pomaga w uruchomieniu Rozpoczęcie Systemu V skrypt używany przez starsze dystrybucje Linuksa. Jeśli nie chcesz instalować systemd narzędzie w twoim systemie, ta poprawka z pewnością zadziała.

Możesz uruchomić, ponownie uruchomić lub zatrzymać dowolne usługi i demony w swojej dystrybucji Linuksa za pomocą serwis Komenda.

ten serwis polecenie i systemowy polecenie działa w ten sam sposób, jedyną różnicą jest tutaj zgodność polecenia z narzędziami odpowiedzialnymi za płynne działanie systemu.

Zobaczmy serwis polecenie z ilustracją.

Ogólna składnia:

usługa sudo [nazwa_usługi] [akcja]

W powyższej składni [akcja] przestrzeń może zawierać działania takie jak początek, zatrzymać, uruchom ponownie lub status.

Uruchomimy to samo polecenie, aby uruchomić ufw usługa za pomocą serwis Komenda.

usługa sudo ufw start

Wyjście:

gaurav@ubuntu:~$ sudo service ufw start gaurav@ubuntu:~$ sudo service ufw status ● ufw.service — nieskomplikowany firewall Załadowany: załadowany (/lib/systemd/system/ufw.service; włączony; ustawienia dostawcy: enab Aktywny: aktywny (zakończony) od pon 2020-09-28 11:22:34 IST; 1h 5min temu Dokumenty: man:ufw(8) Proces: 333 ExecStart=/lib/ufw/ufw-init start cichy (kod=exited, status =0/SU Główny PID: 333 (kod=exited, status=0/SUCCESS) 28 września 11:22:34 ubuntu systemd[1]: Uruchomiony Nieskomplikowany firewall. Ostrzeżenie: Dziennik został obrócony od momentu uruchomienia jednostki. Dane wyjściowe dziennika są niekompletny

Tutaj serwis polecenie jest używane zamiast systemowy polecenie i wyszło absolutnie dobrze.

Zobaczmy jeszcze jeden przykład serwis polecenie, aby właściwie to zrozumieć.

usługa sudo apache2 start

Wyjście:

gaurav@ubuntu:~$ sudo service stan apache2 ● apache2.service — Załadowany serwer HTTP Apache: załadowany (/lib/systemd/system/apache2.service; włączony; ustawienie dostawcy: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktywny: aktywny (działa) od Mon 2020-09-28 11:22:47 IST; 1h 16min temu Proces: 1172 ExecStart=/usr/sbin/apachectl start (kod= exited, status=0/SUCCE Główny PID: 1248 (apache2) Zadania: 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 września 11:22:43 ubuntu systemd[1]: Uruchamianie serwera HTTP Apache... 28 września 11:22:47 ubuntu apachectl[1172 ]: AH00112: Ostrzeżenie: DocumentRoot [/var/www 28 września 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: nie można wiarygodnie det 28 września 11:22:47 ubuntu systemd[1]: uruchomiono Apache HTTP Serwer gaurav@ubuntu:~$ 

Wykorzystaliśmy serwis polecenie, aby uruchomić narzędzie Apache2. Używając status opcja z serwis polecenie wyświetli aktualny stan usługi. Dowiemy się, czy jest uruchomiony, czy nieaktywny (nieaktywny).

Użyjmy teraz zatrzymać akcja zatrzymania usługi Apache2 za pomocą serwis Komenda.

gaurav@ubuntu:~$ usługa sudo apache2 stop gaurav@ubuntu:~$ wiersz stanu usługi sudo apache2 1-1...pomijanie... ● apache2.service - Załadowano serwer HTTP Apache: załadowano (/lib/systemd/ system/apache2.service; włączone; ustawienie dostawcy: włączone) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Aktywny: nieaktywny (martwy) od Mon 2020-09-28 12 :42:06 IST; 1s temu Proces: 4928 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Proces: 1172 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Główny PID : 1248 (kod=exited, status=0/SUCCESS) 28 września 11:22:43 ubuntu systemd[1]: Uruchamianie serwera HTTP Apache... 28 września 11:22:47 ubuntu apachectl[1172]: AH00112: Ostrzeżenie : DocumentRoot [/var/www/html] nie istnieje 28 września 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Nie można wiarygodnie określić w pełni kwalifikowanej nazwy domeny serwera przy użyciu ::1. Ustaw 'S Sep 28 11:22:47 ubuntu systemd[1]: Uruchomiono serwer HTTP Apache.

Ze szczegółowych przykładów wyjaśnionych powyżej możemy wywnioskować, że możemy użyć tego polecenia zamiast systemowy polecenie do kontrolowania i monitorowania innych demonów i usług w dystrybucji Linuksa.

Poprawka 2: Sprawdzam systemd pakiet

Czasami może się zdarzyć, że tylko systemd instalacja pakietu może rozwiązać problem. Najpierw musisz sprawdzić stan instalacji systemd pakiet w twoim systemie.

Użyj następującego polecenia, aby sprawdzić pakiet w swoim systemie.

sudo dpkg -l | grep systemd

Jeśli systemd Program narzędziowy jest już zainstalowany, otrzymasz wynik podobny do pokazanego poniżej.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] hasło dla gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 prosty system przesyłania wiadomości międzyprocesowych (systemd --integracja użytkowników) ii libnss-systemd:amd64 237-3ubuntu10.42 amd64 moduł nss zapewniający dynamikę rozpoznawanie nazw użytkowników i grup ii libpam-systemd:amd64 237-3ubuntu10.42 menedżer systemu i usług amd64 - moduł PAM ii libsystemd0:amd64 237-3ubuntu10.42 biblioteka narzędzi amd64 systemd ii libsystemd0:i386 237-3ubuntu10.42 i386 biblioteka narzędzi systemd ii networkd-dispatcher 1.7-0ubuntu3.3 wszystkie usługi Dispatcher dla zmian statusu połączenia systemd-networkd ri python3-systemd 234-1build1 amd64 Python 3 powiązania dla systemd ii systemd 237-3ubuntu10.42 amd64 system i menedżer usług ii systemd-sysv 237- 3ubuntu10.42 menedżer systemu i usług amd64 — łącza SysV gaurav@ubuntu:~$ 

Jeśli otrzymasz wynik podobny do tego, oznacza to, że systemd jest zainstalowany w twoim systemie.

Jeśli nie jest zainstalowany, możesz go zainstalować w następujący sposób.

aktualizacja sudo apt-get
sudo apt-get install systemd

Jeśli jest zainstalowany, a błąd nadal występuje, spróbuj zainstalować go ponownie za pomocą następującego polecenia.

sudo apt-get install --reinstall systemd

To rozwiąże Twój problem, instalując systemd pożytek.

Wniosek

Nauczyliśmy się naprawiać „nie znaleziono polecenia systemctl: nie znaleziono” w tym samouczku. Możemy śmiało stwierdzić, że przy użyciu serwis polecenie zamiast systemowy to dobry pomysł i bardzo dobrze rozwiązuje problem. Z łatwością możemy wykorzystać serwis polecenie po zapoznaniu się z przykładowymi przykładami przedstawionymi w samouczku.