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