50% kedvezmény minden csomagra, korlátozott ideig. Már $2.48/mo
7 perc van hátra
Szerverek és OS

Hogyan javítsd a systemctl: Command Not Found hibát Ubuntun

Nick Silver By Nick Silver 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őrizheted 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:

Az 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

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

Most mentsd el és zárd be a fájlt a CTRL + X megnyomásával, majd Y a megerősítéshez, és Enter a mentéshez.

Az 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

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

Most mentsd el és zárd be a fájlt a CTRL + X megnyomásával, majd Y a megerősítéshez, és Enter a 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

Záró 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?

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

Több a blogról

Folytassa az olvasást.

A Cosmos Cloud-dal futtatható legjobb önállóan üzemeltetett alkalmazások borítóképe, alkalmazáspanelekkel egy Cosmos irányítópult körül.
Szerverek és OS

A legjobb önállóan üzemeltetett alkalmazások a Cosmos Cloud-dal: fájlok, média, jelszavak, automatizálás és még több!

Lehet, hogy már beállította a Cosmos Cloud-ot, és most szeretné látni, mely alkalmazások illenek hozzá jól, vagy talán még nem döntött a Cosmos mellett, és csak látni szeretné, mennyire illik a munkafolyamatához

Nick SilverNick Silver 16 perces olvasás
Portainer vs Cosmos Cloud Docker alkalmazások kezeléséhez borító hibrid beállítási diagrammal és neon ops vs access blokkokkal.
Szerverek és OS

Portainer vs Cosmos Cloud: A legjobb választás Docker alkalmazáskezeléshez

Ha már ismeri a Dockert, és csak egy tisztább módot szeretne egy növekvő alkalmazás-stack futtatására, itt a rövid válasz a Portainer vs Cosmos Cloud kérdésre. A Portainer az erősebb választás közvetlen

Nick SilverNick Silver 14 perces olvasás
Cosmos Cloud vs CasaOS vs Umbrel főkép három önállóan üzemeltetett útvonalat mutatva egy absztrakt felhőhálózati világban.
Szerverek és OS

Cosmos Cloud vs CasaOS vs Umbrel: Melyik önállóan üzemeltetett platform illik a beállításához?

A rövid válasz: a CasaOS még mindig a legkönnyebb kezdőpont, az Umbrelnek a legtisztább kurált érzése van, és a Cosmos Cloud akkor válik értelmesebbé, ha szorosabb irányítást szeretne a domainek felett

Nick SilverNick Silver 11 perces olvasás

Készen áll a telepítésre? Már 2,48 $/hó-tól.

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