Jak naprawić błąd „SystemCTL Not Found”

Błąd „nie znaleziono polecenia systemctl” występuje zazwyczaj podczas korzystania z systemu operacyjnego Linux, który używa Inny system konfiguracji Przykładami są runit, SystemV itp. System konfiguracji SystemV jest powszechnie używany w starszych dystrybucjach Linuksa, zwłaszcza w wersjach Ubuntu starszych niż 15.04. Jednak niektóre współczesne dystrybucje Linuksa korzystają z systemów konfiguracji innych niż Systemd, takich jak Artix Linux, który jest oparty na Arch Linux, ale używa innych systemów konfiguracji, takich jak runit, dinit itp. zamiast Systemd.

Czym jest system inicjalizacji?

System inicjalizacji to pierwszy proces uruchamiany po uruchomieniu jądra systemu. Istnieje kilka systemów jądra Linuksa, ale najpopularniejszym jest systemd, używany w wielu głównych dystrybucjach Linuksa. Systemd to zbiór procesów działających w tle (demonów) i bibliotek, które kontrolują wszystkie inne procesy i biblioteki działające w tle, takie jak uruchamianie, zatrzymywanie, włączanie lub wyłączanie procesów działających w tle. Demon w Linuksie to odpowiednik usługi w systemie Windows, która działa w tle.

Jak naprawić błąd „polecenie systemctl nie zostało znalezione” w dystrybucjach Linuksa:

Aby naprawić ten błąd, masz dwie możliwości.

  • Zainstaluj systemd i zastąp obecną konfigurację systemu systemd. Błąd „polecenie systemctl nie zostało znalezione” pojawia się, ponieważ w systemie nie zainstalowano programu systemd.
  • Użyj systemu konfiguracji Twojej dystrybucji Linuksa do zarządzania różnymi procesami/usługami działającymi w tle. To rozwiązanie jest przeznaczone dla tych, którzy nie mają zainstalowanego systemd, ale nie chcą go instalować na swoich komputerach, lub jeśli systemd nie jest dostępny w repozytoriach ich dystrybucji.

1. Zainstaluj systemd (jeśli nie jest jeszcze zainstalowany):

Jeśli używasz systemu operacyjnego bazującego na Debianie/Ubuntu, możesz wpisać polecenie, aby sprawdzić, czy systemd jest zainstalowany, czy nie.

Wpisz to polecenie, jeśli używasz systemu operacyjnego Ubuntu lub Debian i naciśnij Enter.

sudo dpkg -l | grep systemd.

W przypadku dystrybucji Arch Linux użyj następującego polecenia:

pacman -Qs systemd

Jeżeli w wyniku tego wyświetli się jakiś tekst, oznacza to, że w systemie zainstalowano systemd i może on być uszkodzony.

Następnie należy ponownie zainstalować systemd, aby polecenie systemctl działało.

Aby to zrobić, zapisz to Sprawa jest w terminalu. i naciśnij Enter.

sudo apt-get install --reinstall systemd.

Spowoduje to ponowną instalację systemu systemd przy użyciu menedżera pakietów apt używanego w dystrybucjach opartych na Debianie/Ubuntu.

W przypadku dystrybucji Arch Linux i ich pochodnych należy użyć następującego polecenia:

sudo pacman -S systemd

Jeśli nie otrzymasz żadnych wyników polecenia sudo dpkg -l | grep systemd Powyżej oznacza to, że systemd nie jest zainstalowany w Twojej dystrybucji.

W takim scenariuszu możesz: Użyj systemu konfiguracji, który ma Twoja dystrybucja. أو Zainstaluj systemd.

Aby zainstalować systemd w dystrybucjach Debian/Ubuntu, wpisz to polecenie w terminalu i naciśnij Enter:

sudo apt-get install systemd

W przypadku dystrybucji Arch Linux wpisz pacman -S systemd jako użytkownik root lub używając sudo.
Spowoduje to zainstalowanie systemu systemd w Twoim systemie operacyjnym. Teraz będziesz mógł używać polecenia systemctl bez żadnych błędów.

2. Użyj systemu init swojej dystrybucji:

Innym rozwiązaniem, a najlepiej najlepszym w przypadku tego błędu, jest Użyj systemu inicjalizacji, który posiadasz Dystrybucja Linuksa Już twoje Do zarządzania usługami/operacjami zaplecza (daemony).
Aby dowiedzieć się, jaki system inicjalizacji jest zainstalowany na Twoim komputerze, wpisz to polecenie w terminalu i naciśnij Enter.

ls -l /sbin/init

że /sbin/init jest linkiem symbolicznym. Dla systemu inicjalizacji używanego przez Twoją dystrybucję Linuksa. Jeśli widzisz dowiązanie symboliczne do /sbin/init wskazując na /lib/sysvinit/initOznacza to, że Twoja dystrybucja korzysta z systemu init sysvBędziesz musiał użyć polecenia usługa zamiast systemctl Do zarządzania usługami lub procesami zaplecza (daemony).
Wzór systemowy sysv init służący do zarządzania usługami jest również bardzo prosty:

usługa [nazwa_usługi] [akcja]

Możesz zatem uruchomić usługę, wpisując polecenie service [service_name] start
Przykład:
ا كنت Uruchamianie usługi/procesu Bluetooth działającego w tleMożesz wpisać polecenie:

sudo service bluetooth start

Następnie, aby sprawdzić czy działa bez błędów, możesz wpisać polecenie:

sudo service bluetooth status

Jeśli chcesz ponownie uruchomić lub zatrzymać usługę, możesz użyć poniższych poleceń. "usługa [nazwa-usługi] ponowne uruchomienie" I "usługa [nazwa-usługi] zatrzymanie" Proste.
Na przykład, jeśli chcesz Wyłącz usługę BluetoothMożesz napisać:

sudo service bluetooth stop

Twój system inicjalizacji prawdopodobnie nie jest syswinitRaczej to inny system konfiguracji. Dlatego wystarczy wyszukać w Google dane wyjściowe łącza symbolicznego. /sbin/initNastępnie możesz skorzystać z poleceń zastosowanych do systemu inicjalizacji na swoim urządzeniu.
Wiele systemów inicjalizacji (systemów init) zwykle zawiera te same polecenia, co uruchom, zatrzymaj i uruchom ponowniePolecenia służące do ich uruchomienia różnią się jednak, ponieważ zawierają sysvinit w poleceniu usługi Aby uruchomić lub zatrzymać usługi, systemd zawiera polecenie systemctl Więc.
Jeśli powyższe rozwiązania nie okażą się skuteczne, czytaj dalej artykuł, być może pomoże rozwiązanie podane poniżej.

Jak naprawić błąd „systemd-resolve command not found”?

Innym błędem związanym z błędem „nie znaleziono polecenia systemctl status” jest błąd „polecenie systemd-resolve nie działa” znalezionoUżytkownicy mogą błędnie sądzić, że `systemd` nie jest zainstalowany, dlatego `systemd-resolve` nie działa. Jednak w `systemd` w wersji 239 i nowszych polecenie zostało zmienione. systemd-solution Dla mnie resolvectl.

Możesz zatem użyć „rozwiąż” Do interakcji z narzędziem systemd-resolve w dystrybucjach Linuksa.

Możliwość dodawania komentarzy nie jest dostępna.