50% kedvezmény minden terv, korlátozott idő. Kezdés: $2.48/mo
7 perc van hátra
Szerverek és operációs rendszer

A systemctl javítása: A parancs nem található az Ubuntuban

Nick Silver By Nick Silver 7 perc olvasás Frissítve: 2025. február 20
a systemctl: parancs nem található

Az egyik leghatékonyabb és leghasznosabb eszköz a Linux-felhasználók számára, különösen az olyan modern disztribúciók számára, mint az Ubuntu, a systemctl parancsot. Ezt a parancssori segédprogramot általában a systemd-vel, a rendszerrel és a szolgáltatáskezelővel való interakcióra használják.

A paranccsal kezelheti a rendszerszolgáltatásokat, megtekintheti állapotukat, elindíthatja vagy leállíthatja őket, valamint engedélyezheti és letilthatja őket a rendszer indításakor. Elég praktikus, igaz? De ha a systemctl parancs nem található vagy felismerhető, akkor szembe kell néznie a "sudo:systemctl: parancs nem található" hiba.

Tehát beszéljünk arról, hogy mit jelent a „systemctl: parancs nem található” hiba, a különféle okok, amelyek miatt szembesül ezzel a hibával, és hogyan javítható a hiba.

Mit jelent a systemctl: A parancs nem található?

Egyszerűen fogalmazva, a „systemctl: parancs nem található” hiba azt jelenti, hogy a systemctl parancssori segédprogram nem érhető el vagy nem érhető el az aktuális környezetben. Ennek számos oka lehet, amelyek mind arra vezethetők vissza, hogy a környezet nem rendszerkörnyezet, vagy a systemd csomag nincs telepítve a rendszerre.

Alapvetően a systemd csomag nincs telepítve, vagy a Linux disztribúciója vagy verziója nem használja a systemd-t; inkább régebbi szolgáltatáskezelő rendszereket használ, mint például 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ó, vagyis a shell nem találja azt.

Most, hogy van egy ötlete, hogy mi lehet a probléma a rendszerrel, ami a „systemctl: parancs nem található” hibához vezet, nézzük meg, hogyan ellenőrizheti, hol van a probléma, és hogyan javíthatja ki.

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

A következő lépésekben ellenőrizni fogjuk, hogy a rendszer telepítve van-e a systemd, és használja-e a systemctl-t, valamint ellenőrizni fogjuk 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álja-e a systemd

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

ps -p 1 -o comm=

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

systemd --version

Ha a kimenet systemd, akkor a systemd az init rendszer, és telepíteni kell az Ubuntu systemctl-t. Ha azonban a kimenet init vagy más folyamatkezelő, az azt jelenti, hogy a rendszer alternatív inicializálási rendszert használ, és a systemctl csak akkor fog működni, ha áttér a systemd-re.

Ha régebbi inicializálási rendszereket lát, mint például az Upstart vagy a SysVinit, és a systemd-re szeretne váltani a systemctl használatához, kövesse az alábbi lépéseket:

1. Telepítse a systemctl-t a systemd telepítésével a következő paranccsal:

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 használja-e a systemd-t:

ps -p 1 -o comm=

A kimenetet most rendszerezni kell.

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 init rendszerként fut, a systemctl parancsnak megfelelően kell működnie. Ha nem, az azt jelenti, hogy a systemd csomag hiányzik, vagy nem megfelelően van telepítve.

Vegye figyelembe, hogy ha az Ubuntu minimális verzióját használja, például Docker-tárolót vagy felhőpéldányt, akkor előfordulhat, hogy a systemd alapértelmezés szerint nincs telepítve. A systemctl telepítéséhez a systemd telepítésével futtassa a következő parancsokat:

sudo apt update
sudo apt install systemd

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

3. A systemctl PATH ellenőrzése

A systemctl nem található hibával kapcsolatos egyik gyakori probléma az, hogy a systemctl telepíthető, de nem szerepel a rendszer PATH-jában. A következő paranccsal ellenőrizheti, hogy léteznek-e systemd bináris fájlok azokban a tipikus könyvtárakban, ahol találhatók (például /bin, /usr/bin vagy /usr/local/bin):

which systemctl

Ha a systemctl megtalálható a PATH-ban felsorolt ​​bármelyik könyvtárban, akkor a következő kimenetet kell kapnia:

/usr/bin/systemctl

Ha a systemctl nem található a PATH egyik könyvtárában sem, akkor a melyik parancs nem ad vissza semmit.

Előfordulhat azonban, hogy a systemctl továbbra sem működik, bár megtalálható a könyvtáraiban. Ennek az az oka, hogy a systemctl olyan könyvtárban található, amely nem szerepel a PATH-ban. Ebben a helyzetben a következő paranccsal ellenőriznie kell, hogy az a könyvtár, amelyben a systemctl található, a rendszer része-e:

echo $PATH

A kimenetnek valami ilyesminek kell lennie:

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

Most már csak azt kell ellenőrizni, hogy az a könyvtár, amelyben a systemctl található (amelyet a melyik parancsból kapott), benne van-e az echo $PATH parancs kimenetében felsorolt ​​könyvtárak között.

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

Mert 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éhez:

export PATH=$PATH:/usr/bin

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

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

Mert 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éhez:

export PATH=$PATH:/usr/bin

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

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

Ha végzett a fenti lépésekkel, az echo $PATH paranccsal ellenőrizze, hogy a systemctl könyvtára hozzá lett-e adva a PATH-hoz. Most már képesnek kell lennie a systemctl futtatására anélkül, hogy megjelenne a „systemctl: parancs nem található” hiba.

4. A systemd újratelepítése

Ha a korábbi javítások nem működnek, és továbbra is a parancs nem található hibával néz szembe, 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őrizze, hogy a systemctl működik-e.

5. Ellenőrizze, hogy a systemd megfelelően van-e konfigurálva

Néha a probléma olyan egyszerű lehet, mint a systemd rosszul konfigurált telepítése, ami „systemctl: parancs nem található” hibát eredményez. A probléma megoldásához mindössze annyit kell tennie, hogy futtassa a következő parancsot, és kész is:

sudo dpkg-reconfigure systemd

6. Elavult Windows-alrendszer Linuxhoz (WSL)

Esetleg Ubuntut használsz alatta WSL (Windows alrendszer Linuxhoz) tudnia kell, hogy a WSL régebbi verziói, például a WSL 1, natívan nem támogatják a systemctl-t, így függetlenül attól, hogy melyik korábbi javítást használja, nem fogja tudni futtatni a systemctl-t.

Ha szeretné kihasználni a systemctl funkcióit, frissítenie kell a WSL 2-re, amely jobban támogatja a systemd-t. Ha nem biztos abban, hogy WSL-t használ-e, a következő paranccsal ellenőrizheti:

uname -a

Ha a kimenet WSL-t említ, akkor ezért látja a „systemctl: parancs nem található” hibát.

7. A sudo szolgáltatás használata a systemctl alternatívájaként

Ha a „systemctl: parancs nem található” hibával néz szembe, mert a rendszer nem használja a systemd parancsot, a sudo service paranccsal kezelheti a szolgáltatásokat. Ez a parancs régebbi indítórendszerekkel működik, mint például a SysVinit vagy az Upstart. Ez azoknál az Ubuntu rendszereknél hasznos, amelyek a systemd helyett init parancsfájlokra támaszkodnak.

Például egy szolgáltatás elindításához futtassa:

sudo service <service_name> start

Végső gondolatok

A systemd és a systemctl parancssori segédprogramja felváltotta a legtöbb régebbi init rendszert, mint például a SysVinit és az Upstart. Noha monolitikus kialakítása és nem Unix filozófiája miatt a systemd nem mindenki számára az init rendszer teája, a systemd továbbra is általánosan elterjedt választás. Tehát remélhetőleg sikerült megoldania a systemctl parancs nem elérhető hibáját, mivel a systemd parancssori segédprogramjának használatának hiánya súlyosan korlátozza annak képességeit.

GYIK

Mi a systemctl és mit jelent a systemctl: Command Not Found?

A systemctl egy parancssori eszköz, amely a systemd rendszert futtató Linux rendszerekben, például az Ubuntuban, szolgáltatások kezelésére szolgál. A „systemctl: parancs nem található” hiba akkor jelentkezik, ha az eszköz nem elérhető vagy nem érhető el, általában azért, mert a rendszer nem használja a systemd-t, vagy a systemd csomag nincs telepítve.

Elérhető a systemctl az Ubuntu összes verzióján?

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

Részesedés

Továbbiak a blogból

Olvass tovább.

A Cosmos Cloud borítóképével futtatható legjobb saját üzemeltetésű alkalmazások a Cosmos irányítópultja körüli alkalmazáspanelekkel.
Szerverek és operációs rendszer

A Cosmos Cloud segítségével futtatható legjobb saját üzemeltetésű alkalmazások: fájlok, média, jelszavak, automatizálás és egyebek!

Lehet, hogy beállította a Cosmos Cloud szolgáltatást, és most szeretné látni, hogy mely alkalmazások illenek jól hozzá, vagy talán még nem döntötte el a Cosmos mellett, és csak azt szeretné látni, hogy mennyire illeszkedik a munkájához.

Nick SilverNick Silver 16 perc olvasás
Portainer vs Cosmos Cloud a Docker Apps kezeléséhez, hibrid beállítási diagrammal és neon ops vs hozzáférési blokkokkal.
Szerverek és operációs rendszer

Portainer vs Cosmos Cloud: A legjobban illeszkedik a Docker alkalmazáskezeléshez

Ha már ismeri a Dockert, és csak tisztább módon szeretné futtatni a növekvő alkalmazáskészletet, íme a rövid válasz a Portainer vs Cosmos Cloud kérdésére. Portainer az erősebb választás a direc számára

Nick SilverNick Silver 14 perc olvasás
A Cosmos Cloud vs CasaOS vs Umbrel funkciógrafika, amely három önállóan tárolt útvonalat mutat be egy absztrakt felhőhálózati világban.
Szerverek és operációs rendszer

Cosmos Cloud vs CasaOS vs Umbrel: Melyik önkiszolgáló platform illik az Ön beállításához?

A rövid válasz az, hogy továbbra is a CasaOS a legkönnyebb kezdeni, az Umbrel a legtisztábban kezeli, és a Cosmos Cloud értelmesebb, ha szorosabb ellenőrzést szeretne a doma felett.

Nick SilverNick Silver 11 perc olvasás

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

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