50% kedvezmény minden csomagra, korlátozott ideig. Kezdőár: $2.48/mo
7 perc van hátra
Kiszolgálók és operációs rendszer

A systemctl: Command Not Found hiba megoldása az Ubuntu rendszeren

Nick Ezüst By Nick Ezüst 7 perces olvasás Frissítve: 2025. február 20.
hogyan lehet megoldani a systemctl: command not found hibát

Az Linux felhasználók számára, különösen a modern disztribúciók, mint az Ubuntu, az egyik legerősebb és leghasznosabb eszköz a systemctl parancs. Ez a parancssori segédprogram a systemd kezelésére szolgál, amely a rendszer és a szolgáltatáskezelő.

Ezzel a paranccsal kezelheted a rendszerszolgáltatásokat, megtekintheted azok állapotát, elindíthatod vagy leállíthatod őket, valamint engedélyezheted vagy letilthatod őket a rendszer indításakor. Tényleg praktikus, igaz? De ha a systemctl parancs nem található vagy nem ismerhető fel, akkor hibával fogsz szembesülni az sudo:systemctl: parancs nem található hiba.

Szóval, beszéljünk arról, hogy mit jelent a "systemctl: command not found" hiba, milyen különféle okok állhatnak ennek hátterében, és hogyan lehet ezt a hibát kijavítani.

Mit jelent a systemctl: Command Not Found hiba?

Egyszerűen fogalmazva, a „systemctl: command not found" hiba azt jelenti, hogy a systemctl parancssori segédprogram nem érhető el vagy nem hozzáférhető az aktuális környezetben. Ez számos oka lehet, amelyek végül is arra vezetnek vissza, hogy a környezet nem valódi rendszerkörnyezet, vagy a systemd csomag nincs telepítve a rendszerre.

Alapvetően a systemd csomag nincs telepítve, vagy a Linux disztribúciód vagy verziód nem használ systemd-t; ehelyett régebbi szolgáltatáskezelő rendszereket használ, mint az init.d. Egy másik lehetőség az, hogy a PATH környezeti változó nem tartalmazza azt a könyvtárat, ahol a systemctl található, ami azt jelenti, hogy a shell nem találja meg.

Most hogy van egy ötleted arról, hogy mi lehet a baj a rendszeredben, ami a "systemctl: command not found" hibaüzenethez vezethet, nézzük meg, hogyan tudod ellenőrizni, hol van a probléma és hogyan javíthatod meg.

A systemctl: Parancs nem található hiba javítása

A következő lépésekben ellenőrizni fogjuk, hogy a rendszeredben telepítve van-e a systemd és használja-e a systemctl alkalmazást vagy sem, valamint megvizsgáljuk a systemctl elérési útját. Miután ellenőriztük a problémát, megtesszük a szükséges lépéseket a hiba kijavításához.

1. Annak ellenőrzése, hogy a rendszer használ-e systemd-et

Mivel az Ubuntu systemctl csak akkor használható, ha telepítve van a systemd csomag, először ellenőrizzük, hogy a rendszerednek szükséges-e a systemd használata a következő parancs futtatásával:

ps -p 1 -o comm=

Vagy ellenőrizheti a systemd verzióját a következő paranccsal:

systemd --version

Ha a kimenet systemd, akkor a systemd az Ön init rendszere, és az Ubuntu systemctl telepítve kell, hogy legyen. Ha azonban a kimenet init vagy egy másik folyamatkezelő, az azt jelenti, hogy a rendszer alternatív inicializálási rendszert használ, és a systemctl nem fog működni, ha nem migrál a systemd-re.

Ha olyan régebbi inicializálási rendszereket látsz, mint az Upstart vagy a SysVinit, és a systemd-re szeretnél váltani a systemctl használatához, kövesd az alábbi lépéseket:

1. Telepítse a systemctl-t a systemd telepítésével a következő parancs használatával:

sudo apt install systemd-sysv

2. Indítsa újra a rendszert a következő parancs futtatásával:

sudo reboot

3. Ellenőrizze, hogy a rendszer most a systemd-t használja:

ps -p 1 -o comm=

A kimenet mostantól systemd legyen.

2. A systemd helyes telepítésének biztosítása

Normál körülmények között, amikor a systemd telepítve van és az init rendszerként fut, a systemctl parancsnak helyesen kell működnie. Ha nem így van, akkor az azt jelenti, hogy a systemd csomag hiányzik vagy helytelenül van telepítve.

Vegyük figyelembe, hogy ha az Ubuntu egy minimális verzióját használod, például egy Docker-tárolót vagy felhőbeli példányt, akkor a systemd alapértelmezés szerint lehet, hogy nincs telepítve. A systemctl telepítéséhez a systemd telepítésén keresztül futtasd a következő parancsokat:

sudo apt update
sudo apt install systemd

A telepítés után ellenőrizze, hogy a systemctl parancs elérhető-e.

3. A systemctl PATH ellenőrzése

A systemctl not found hibaval kapcsolatos egyik gyakori probléma az, hogy a systemctl telepítve lehet, de nem található a rendszer PATH változójában. Annak ellenőrzésére, hogy a systemd bináris fájlok léteznek-e azokban a tipikus könyvtárakban, ahol általában megtalálhatók, mint a /bin, /usr/bin vagy /usr/local/bin, használhatja a következő parancsot:

which systemctl

Ha a systemctl megtalálható az egyik PATH-ben felsorolt könyvtárban, egy ehhez hasonló kimenetet kell kapnod:

/usr/bin/systemctl

Ha a systemctl nem található a PATH-ban lévő egyik könyvtárban sem, a which parancs nem ad vissza semmit.

Azonban a systemctl előfordulhat, hogy még akkor sem működik, ha megtalálható a könyvtáraiban. Ennek oka az, hogy a systemctl egy olyan könyvtárban lehet, amely nincs szerepeltetve a PATH-ban. Ebben a helyzetben ellenőriznie kell, hogy a systemctl helyét tartalmazó könyvtár része-e a rendszerének, a következő parancs használatával:

echo $PATH

A kimenet nagyjából így kellene kinézzen:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Most már csak annyit kell tenned, hogy ellenőrizd, hogy a systemctl által használt könyvtár (amelyet a which parancsból kaptál) szerepel-e a echo $PATH parancs kimenetében felsorolt könyvtárak között.

Ha a systemctl könyvtára nincs benne az echo $PATH kimenetében, akkor hozzá kell adnia a PATH változóhoz. Ehhez a következő parancsot kell futtatnia:

Számára Bash shell felhasználók, nyissa meg a ~/.bashrc fájlt egy szövegszerkesztőben:

nano ~/.bashrc

Adja hozzá a következő sort a fájl végére:

export PATH=$PATH:/usr/bin

/usr/bin egy tipikus könyvtár, ahol a systemctl található ebben a példában.

Most mentse és zárja be a fájlt a CTRL + X, majd az Y lenyomásával a megerősítéshez, és az Enter megnyomásával mentéshez.

Számára Zsh felhasználók, Nyissa meg a ~/.zshrc fájlt egy szövegszerkesztőben:

nano ~/.zshrc

Adja hozzá a következő sort a fájl végére:

export PATH=$PATH:/usr/bin

/usr/bin egy tipikus könyvtár, ahol a systemctl található ebben a példában.

Most mentse és zárja be a fájlt a CTRL + X, majd az Y lenyomásával a megerősítéshez, és az Enter megnyomásával mentéshez.

Miután elvégezte a fenti lépéseket, használja az echo $PATH parancsot annak ellenőrzésére, hogy a systemctl könyvtára hozzá lett-e adva a PATH-hoz. Most már futtathatja a systemctl-t anélkül, hogy a "systemctl: command not found" hibaüzenetre futna.

4. A systemd újratelepítése

Ha az előző megoldások nem működnek és továbbra is parancs nem található hibát tapasztal, a systemd teljes újratelepítése megoldhatja a problémát. Ehhez futtassa a következő parancsokat:

sudo apt purge systemd
sudo apt install systemd

Ezután indítsa újra a rendszert ezzel a paranccsal:

sudo reboot

Ellenőrizd, hogy a systemctl működik-e.

5. A systemd helyes konfigurációjának ellenőrzése

Néha az egyetlen probléma a systemd hibás konfigurációjú telepítése lehet, amely a "systemctl: command not found" hibát eredményezi. Ennek a problémának a megoldásához csak annyit kell tenned, hogy futtatod a következő parancsot, és kész is vagy:

sudo dpkg-reconfigure systemd

6. Elavult Windows Subsystem for Linux (WSL)

Arra az esetre, ha az Ubuntu alatt WSL (Windows alrendszer Linuxhoz) Tudnod kell, hogy a WSL régebbi verziói, például a WSL 1, nem támogatják natívan a systemctl-t, így függetlenül attól, hogy az előző javítások közül melyiket használod, nem lesz képes futtatni a systemctl-t.

Ha szeretné kihasználni a systemctl funkcióit, frissítenie kell a WSL 2-re, amely jobb támogatást nyújt a systemd számára. Ha nem biztos benne, hogy a WSL-t használja-e vagy sem, ezt az alábbi parancs futtatásával ellenőrizheti:

uname -a

Ha a kimenet említi a WSL-t, akkor ez az oka a "systemctl: command not found" hiba megjelenésének.

7. A sudo Service használata alternatívaként a systemctl helyett

Ha a "systemctl: command not found" hibával szembesülsz, mert a rendszered nem használ systemd-t, használhatod a sudo service parancsot a szolgáltatások kezeléséhez. Ez a parancs régebbi init rendszerekkel működik, mint például a SysVinit vagy az Upstart. Ez hasznos az Ubuntu rendszerekhez, amelyek az init szkriptek helyett systemd helyett támaszkodnak.

Például egy szolgáltatás indításához ezt futtatná:

sudo service <service_name> start

Végső gondolatok

A systemd és annak systemctl parancssori segédprogramja felváltotta a legtöbb régebbi init rendszert, mint például a SysVinit és az Upstart. Bár a systemd monolitikus kialakítása és nem Unix-filozófiája miatt nem mindenkinek való, a systemd továbbra is az általánosan elterjedt választásnak tekinthető. Remélhetőleg sikerült megoldanod a systemctl parancs nem elérhető hibát, mivel a systemd parancssori segédprogramjának használata nélkül annak képességei súlyosan korlátozódnak.

Gyakran Ismételt Kérdések

Mi az a systemctl és mit jelent a "systemctl: command not found" hiba?

A systemctl egy parancssori eszköz, amelyet a systemd-t futtató Linux rendszerekben, például az Ubuntu-ban a szolgáltatások kezeléséhez használnak. A "systemctl: command not found" hiba akkor fordul elő, amikor az eszköz nem érhető el vagy nem hozzáférhető, általában azért, mert a rendszer nem használ systemd-t vagy a systemd csomag nincs telepítve.

A systemctl elérhető az Ubuntu összes verziójában?

Nem, a systemctl nem érhető el az Ubuntu összes verziójában. A systemctl a systemd init rendszer része, amely az alapértelmezett a legtöbb modern Ubuntu verzióban (a 15.04-es verzió óta). A régebbi verziók vagy bizonyos minimális telepítések alternatív init rendszereket, például SysVinit vagy Upstart rendszereket használhatnak.

Megosztás

További bejegyzések a blogból

Folytass olvasást.

Legjobb saját üzemeltetésű alkalmazások, amelyeket Cosmos Cloud-vel futhatsz borítóképe az alkalmazáspanelekkel egy Cosmos irányítópult körül.
Kiszolgálók és operációs rendszer

Legjobb saját üzemeltetésű alkalmazások, amelyeket Cosmos Cloud-vel futhatsz: fájlok, média, jelszavak, automatizálás és még sok más!

Maybe ha már beállítottad a Cosmos Cloud-t és szeretnéd megtekinteni, mely alkalmazások illenek hozzá, vagy még nem döntöttél a Cosmos mellett, és csak azt szeretnéd megtudni, mennyire passzol a munkafolyamatodhoz

Nick EzüstNick Ezüst 16 perces olvasás
Portainer vs Cosmos Cloud a Docker alkalmazások kezeléséhez borítóképe hibrid beállítás diagrammal és neon ops vs hozzáférési blokkok.
Kiszolgálók és operációs rendszer

Portainer vs Cosmos Cloud: melyik a jobb választás a Docker alkalmazáskezeléshez

Ha már ismered a Docker-t és csak tisztább megoldást akarsz egy növekvő alkalmazásveremhez, itt a rövid válasz a Portainer vs Cosmos Cloud kérdésre. A Portainer az erősebb választás a közvetlen

Nick EzüstNick Ezüst 14 perc olvasás
Cosmos Cloud vs CasaOS vs Umbrel funkciógrafika három saját üzemeltetésű útvonalat mutat egy absztrakt felhőhálózati világban.
Kiszolgálók és operációs rendszer

Cosmos Cloud vs CasaOS vs Umbrel: melyik saját üzemeltetésű platform passzol az eszközödbe?

A rövid válasz az, hogy a CasaOS még mindig a legkönnyebb kiindulópont, az Umbrel a legszebb kurátált érzést nyújtja, és a Cosmos Cloud értelmesebb választás, ha szoros kontrollt akarsz a domén

Nick EzüstNick Ezüst 11 perces olvasás

Készen áll az üzembe helyezésre? 2,48 dollártól havonta.

Független felhőszolgáltató 2008 óta. AMD EPYC, NVMe, 40 Gbps. 14 napos pénzvisszafizetési garancia.