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

Hogyan működik a nohup parancs Linux alatt – Szintaxis, használati esetek és példák

Ada Lovegood By Ada Lovegood 8 perc olvasás Frissítve 2024. július 14-én
nohup parancs

Ha Ön Linux-fejlesztő, tudja, milyen fontos a munkamenetei konzisztenciája és megbízhatósága. A Linuxban régóta futó folyamatoknak azután is folytatniuk kell, hogy Ön kijelentkezett a munkamenetből. Szerencsére a Linuxnak van egy funkcionális parancsa erre a célra. A nohup parancs lehetővé teszi a parancsok megszakítás nélküli futtatását a háttérben. Így megelőzi az adatvesztést és értékes időt takarít meg. Ez az útmutató végigvezeti Önt mindenen, amit a Linux nohup parancsról tudnia kell, a szintaxistól és a beállításoktól a gyakorlati példákig és a gyakori hibák hibaelhárításáig.

A Linux nohup szintaxis megértése

A nohup parancs könnyen használható és egyértelmű. Lehetővé teszi, hogy parancsokat vagy szkripteket futtasson a háttérben, így biztos lehet benne, hogy továbbra is futnak, még akkor is, ha kijelentkezik a terminálból. A következőképpen használhatja:

nohup [command] [arguments] &

Cserélnie kellene [parancs] a futtatni kívánt paranccsal vagy szkripttel. És [érv] a parancs által megkövetelt bármely argumentum vagy opció. A & szimbólum elküldi a parancsot, hogy futtasson a háttérben. Lássunk egy példát:

nohup myscript.sh &

Ebben a példában myscript.sh egy bash szkript, amely akkor is fut, ha bezárja a terminált. A kimenet át lesz irányítva egy nevű fájlba nohup.out alapértelmezés szerint, hacsak nem ad meg másik elérési utat.

A nohup opciók felfedezése

Bár magának a nohup parancsnak nincs sok opciója, a különböző parancsokkal és átirányítási technikákkal való hatékony használatának megértése javíthatja a teljesítményét. Először nézzük meg, hogyan szerezhetünk információkat a nohup parancsról:

nohup –-help 
nohup --version

Ez a két parancs hasznos információkkal szolgál a súgóüzenet és a nohup verziójának megjelenítésével.

Folyamat futtatása a nohup paranccsal

Ha egy folyamatot a nohup paranccsal szeretne futtatni, akkor ugyanazt a struktúrát követheti, amelyet az előző részben leírtam:

nohup [command]

Ha egy folyamatot szeretne futtatni a háttérben, csak adja hozzá & a parancsod végéig.

Több folyamat futtatása a háttérben a nohup paranccsal

Mi van akkor, ha egynél több folyamatot szeretne futtatni a háttérben a nohup paranccsal?

nohup bash -c '[command A] && [command B]' &

Cserélje ki [A parancs] és [B parancs] a háttérben futtatni kívánt parancsokkal. Képzelje el, hogy először frissíteni szeretné a rendszercsomagokat, majd megtisztítja a szükségtelen fájlokat, és ezt a nohup paranccsal szeretné megtenni:

nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &

Ebben a példában nohup lehetővé teszi, hogy a frissítési és tisztítási folyamatok továbbra is futjanak a háttérben. Így a rendszerkarbantartási feladatai a terminál nyitva tartása nélkül végezhetők el.

Az egyéni kimenet átirányítása

Ennek a folyamatnak a kimenete át lesz irányítva ide nohup.out alapértelmezés szerint. De mi van akkor, ha egy másik úton szeretné megkapni a kimenetet? Ezt a következőképpen teheti meg:

nohup [command] > [/path/to/new/output.txt]

Ne felejtse el lecserélni az értékeket [] a kívánt paranccsal és fájlútvonallal.

A nohup kombinálása más parancsokkal

A nohup kombinálható más parancsokkal és csövekkel, hogy hatékony parancsláncokat hozzon létre. Lássunk erre egy példát:

nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &

Itt, a lelet parancs a naplófájlok keresésére szolgál, és grep a „HIBA” kifejezés keresésére szolgál. A kombinált kimenet ide kerül átirányításra error_logs.txt.

Ebben a részben a nohup parancs leggyakoribb beállításait és használati eseteit ismertettük. Ezen utasítások elsajátításával hatékonyan használhatja a nohup-ot Linux-folyamatok háttérben történő futtatására.

Gyakori hibák és hibaelhárítás

A nohup parancs használata általában egyszerű, de előfordulhat néhány gyakori hiba a folyamat során. Ha megérti ezeket a hibákat, és ismeri a hibaelhárításuk módját, időt és frusztrációt takaríthat meg. Lássuk tehát, melyek ezek a gyakori hibák, és hogyan kell eligazodni bennük:

Engedély megtagadva

Ez a hiba akkor fordul elő, ha a futtatni kívánt parancsfájl vagy parancs nem rendelkezik végrehajtási engedéllyel. A hiba kimenete így néz ki: nohup: nem sikerült futtatni a „myscript.sh” parancsot: Engedély megtagadva

A probléma megoldásához meg kell győződnie arról, hogy a szkript vagy parancs megfelelő engedélyekkel rendelkezik. Végrehajtási engedélyt adhat hozzá a chmod parancs:

chmod +x myscript.sh 
nohup ./myscript.sh &

A parancs nem található

Ez a hiba akkor fordul elő, ha a parancs vagy a parancsfájl nem található a megadott helyen, vagy nem érhető el a PATH-ban. A hiba kimenete így néz ki: nohup: nem sikerült futtatni a „myscript.sh” parancsot: Nincs ilyen fájl vagy könyvtár

A hiba megoldásához ellenőrizze, hogy a parancs vagy parancsfájl létezik-e, és a megfelelő könyvtárban van-e. Lehet, hogy meg kell adnia a szkript abszolút elérési útját:

nohup /path/to/myscript.sh &

Győződjön meg arról is, hogy a parancs telepítve van és elérhető a PATH-ban.

Nincs kimenet

Néha észreveheti, hogy nincs kimenet a terminálban vagy a kimeneti fájlban. Ha a parancs kimenetet ad, de nem látja, akkor lehet, hogy az alapértelmezett fájltól eltérő útvonalra irányítja át, vagy probléma lehet a fájlengedélyekkel. A probléma megoldásához kifejezetten meg kell adnia a kimeneti fájlt, hogy biztosítsa a helyes átirányítást:

nohup myscript.sh > output.log 2>&1 &

Példaként ez a parancs a szabványos kimenetet és a szabványos hibát is átirányítja egy nevű fájlba output.log.

A szkript nem fut a háttérben

Néha úgy tűnik, hogy a szkript vagy parancs fut, de nem a háttérben. Az ok általában egyszerű. Lehet, hogy elfelejtette hozzáadni a & szimbólumot a parancs végén, hogy a háttérben futtassa. A megoldás is egyszerű, csak győződjön meg róla, hogy ezt hozzáadta, és kész.

Lefagyott vagy nem reagáló folyamat

A nohup-pal elindított folyamat lefagyhat vagy nem reagál. Ez akkor fordulhat elő, ha a folyamat bevitelre vár, vagy ha problémák vannak az elérni kívánt erőforrásokkal. A problémára két megoldás létezik:

  • Ellenőrizze a szükséges bevitelt: Győződjön meg arról, hogy a parancs nem igényel interaktív bevitelt.
  • Erőforrásokkal kapcsolatos problémák: Ellenőrizze, hogy a parancs hozzáfér-e a szükséges erőforrásokhoz (például fájlok, hálózat).

A nohup.out felülírása

Ha több folyamatot futtat a háttérben a nohup paranccsal, akkor véletlenül felülírhatja a nohup.out fájlt. A probléma elkerülése érdekében minden folyamathoz kiválaszthat egy adott útvonalat. Így minden folyamatnak egyedi kimeneti fájlja van, és az alapértelmezett elérési út nem kerül felülírásra.

Ha megismeri a gyakori nohup hibát és azok megoldásait, gond nélkül használhatja a nohup parancsot.

Következtetés

A nohup parancs nagyszerű eszköz minden Linux-felhasználó számára, akinek folyamatokat kell futtatnia a háttérben, mert biztosítja, hogy a folyamatok a kijelentkezés után is fussanak. Ebben az útmutatóban bemutattuk az alapvető szintaxist, megvizsgáltuk a különböző lehetőségeket, és megvitattuk a gyakori hibákat, valamint hibaelhárítási tippeket. A nohup parancs elsajátítása lehetővé teszi a régóta futó feladatok hatékony kezelését, ami javítja a termelékenységet és a rendszerkezelési készségeket.

Ha Ön Linux-fejlesztő, aki szeretné maximalizálni Linux-élményét, fontolja meg a frissítést egy megbízhatóra Linux VPS. Felhőalapú VPS szolgáltatásunk 24 órás támogatást és 99,95%-os rendelkezésre állási garanciát kínál, ami azt jelenti, hogy alkalmazásai mindig zökkenőmentesen futnak, és a nap bármely szakában kaphat segítséget. Robusztus infrastruktúrájával és megbízható erőforrásaival VPS-ünket úgy tervezték, hogy megfeleljen a Linux-programozók igényeinek. Ráadásul a kívánt Linux disztribúciót előre telepítheti, így a beállítás gyors és egyszerű. Emelje Linux-projektjeit a következő szintre egy olyan VPS-sel, amely biztosítja a szükséges teljesítményt és rugalmasságot.

GYIK

Mi a különbség között nohup és &?

nohup megakadályozza a folyamat leállítását, amikor a felhasználó kijelentkezik, miközben & folyamatot futtat a háttérben. Használata nohup biztosítja, hogy a folyamat folytatódjon a kijelentkezés után és azzal kombinálva & lehetővé teszi a háttérben való futását.

Miért használják a nohupot?

nohup Arra szolgál, hogy megbizonyosodjon arról, hogy egy parancs vagy szkript fut még a felhasználó kijelentkezése vagy a terminál bezárása után is. Elengedhetetlen a hosszan futó folyamatokhoz, amelyeknek felhasználói beavatkozás nélkül kell aktívak maradniuk.

Mi az a nohup out fájl?

A nohup.out fájl az alapértelmezett kimeneti fájl, ahol a nohup átirányítja a parancs szabványos kimenetét és szabványos hibáját. Ha nincs más kimeneti fájl megadva, a parancs kimenete a következő helyre kerül mentésre nohup.out az aktuális könyvtárban.

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.