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

A nohup parancs működése az Linux-ben – Szintaxis, alkalmazási esetek és példák

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

Ha Linux fejlesztő vagy, tudod a munkamenetek konzisztenciájának és megbízhatóságának fontosságát. Az Linux-ben futó hosszú ideig tartó folyamatok akkor is folytatódniuk kell, miután kijelentkeztél a munkamenetből. Szerencsére az Linux egy funkcionális paranccsal rendelkezik erre a célra. Az nohup parancs lehetővé teszi, hogy a parancsokat zavartalanul a háttérben futtasd. Ez megakadályozza az adatvesztést és értékes időt takarít meg. Ez az útmutató mindent végigvesz, amit tudnod kell az Linux nohup parancsról, a szintaxistól és opciótól a gyakorlati példákig és a gyakori hibák elhárításáig.

Linux nohup szintaxis megértése

A nohup parancs könnyen használható és egyértelmű. Lehetővé teszi, hogy parancsokat vagy szkripteket a háttérben futtass, így biztosan folytatódnak a végrehajtás akkor is, ha kijelentkezel a terminálból. Így használod:

nohup [command] [arguments] &

Cserélnie kellene [command] helyére a futtatni kívánt parancs vagy szkript. Az [argument] a parancs által szükséges argumentumok vagy opciók. Az & szimbólum a parancsot a háttérben futtatja. Lássunk egy példát:

nohup myscript.sh &

Ebben a példában myscript.sh egy bash szkript, amely akkor is futtatódni fog, ha bezárod a terminált. A kimenet alapértelmezés szerint egy nohup.out nevű fájlba kerül átirányításra, hacsak nem adtál meg másik elérési útvonalat.

Nohup opciók feltárása

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

nohup –-help 
nohup --version

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

A nohup parancs segítségével folyamat futtatása

Ha a nohup paranccsal szeretnél folyamatot futtatni, követheted az előző szakaszban magyarázott szerkezetet:

nohup [command]

Ha egy folyamatot a háttérben szeretnél futtatni, csak add hozzá & a parancs végéig.

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

Mi a helyzet akkor, ha az nohup parancs segítségével több folyamatot szeretnél egyszerre futtatni a háttérben?

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

Cserélje ki [command A] és [command B] a parancsokkal, amelyeket a háttérben szeretnél futtatni. Például ha először frissíteni szeretnéd a rendszer csomagjait, majd eltávolítani az egyéb fájlokat, és ezt az nohup paranccsal szeretnéd 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és és a tisztítás folyamatok párhuzamosan fussanak a háttérben. Az adatbázis-karbantartási feladatok így befejezésre kerülnek anélkül, hogy a terminált nyitva kellene tartanod.

Egyéni Kimenet Átirányítása

Ennek a folyamatnak a kimenete a következő helyre lesz átirányítva: nohup.out alapértelmezésben. De mi van akkor, ha más elérési úton szeretnéd megkapni az outputot? Így teheted meg:

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

Emlékezz az értékek cseréjére a [] az Ön kívánt parancsával és fájlútvonalával.

Nohup kombinálása más parancsokkal

A nohup parancs kombinálható más parancsokkal és pipe-okkal, hogy erős parancsláncokat hozz létre. Lássunk erre egy példát:

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

I notice your source text is incomplete ("Here, the"). Could you provide the full English phrase you'd like translated to Hungarian? keresés parancs a naplófájlok keresésére használatos és grep az "ERROR" kifejezés keresésére szolgál. Az összesített kimenet átirányításra kerül error_logs.txt.

Ebben a részben a nohup parancs leggyakoribb lehetőségeit és felhasználási módjait ismertettük. E parancsok elsajátításával hatékonyan használhatod a nohup-ot háttérben futó Linux folyamatok indításához.

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

A nohup parancs használata általában egyszerű, de a folyamat során előfordulhatnak gyakori hibák. Ha megértesz ezeket a hibákat és tudod, hogyan lehet őket elhárítani, sok időt és bosszúságot spórolhatsz meg. Nézzük meg tehát, melyek ezek a gyakori hibák és hogyan lehet őket kezelni:

Hozzáférés megtagadva

Ez a hiba akkor lép fel, ha az Ön által futtatni kívánt szkript vagy parancs nem rendelkezik végrehajtási engedéllyel. A hibaüzenet így néz ki: nohup: nem sikerült végrehajtani a parancsot 'myscript.sh': Hozzáférés megtagadva

A probléma megoldásához meg kell győződnie arról, hogy a script vagy parancs rendelkezik a megfelelő engedélyekkel. Az execute engedélyt a következővel adhatja hozzá: chmod Ez az UGYANEZ a karakterlánc az arabra így lett lefordítva: ':' Tehát tudod, hogy LEFORDÍTHATÓ, nem márkanév.

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

Parancs nem található

Ez a hiba akkor jelentkezik, ha a parancs vagy szkript nem található a megadott helyen, vagy nem érhető el a PATH környezeti változóban. A hibaüzenet így néz ki: nohup: nem sikerült futtatni a parancsot 'myscript.sh': Nincs olyan fájl vagy könyvtár

A hiba megoldásához ellenőrizd, hogy a parancs vagy szkript létezik-e, és a megfelelő könyvtárban van-e. Előfordulhat, hogy a szkripthez az abszolút útvonalat kell megadnod:

nohup /path/to/myscript.sh &

Ügyelj arra is, hogy a parancs telepítve legyen és elérhető a PATH-ban.

Nincs kimenet

Előfordulhat, hogy a terminálban vagy a kimeneti fájlban nem jelenik meg semmilyen kimenet. Ha a parancs valóban produkál kimenetet, de nem látod, az lehetséges, hogy az alapértelmezetttől eltérő helyre van átirányítva, vagy fájlmegadási probléma van. Ennek megoldásához explicit módon meg kell adnod a kimeneti fájlt, hogy biztosan a helyre kerüljön:

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

Például ez a parancs az standard outputot és a standard errort is átirányítja egy output.log.

A script nem fut a háttérben

Néha úgy tűnik, hogy a script vagy parancs fut, de valójában nem a háttérben. Az ok általában egyszerű. Valószínűleg elfelejtettél hozzáadni a & szimbólum a parancs végén ahhoz, hogy a háttérben fusson. A megoldás egyszerű, csak győződj meg arról, hogy hozzáadtad, és kész is vagy.

Lefüggesztett vagy nem reagáló folyamat

A nohup paranccsal indított folyamat lefagyhat vagy nem válaszol. Ez előfordulhat, ha a folyamat bemenetre vár, vagy ha problémái vannak az elérni kívánt erőforrásokkal. Két megoldás lehetséges:

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

nohup.out felülírása

Ha a nohup paranccsal több folyamatot futtat a háttérben, véletlenül felülírhatja a nohup.out fájl. Ennek elkerüléséhez minden folyamathoz megadhat egy adott elérési útvonalat. Így minden folyamat saját kimeneti fájllal rendelkezik, és az alapértelmezett útvonal nem íródik felül.

Ha megérted a gyakori nohup hibákat és azok megoldásait, akkor zavartalanul használhatod a nohup parancsot.

Következtetés

A nohup parancs nagyszerű eszköz bármelyik Linux felhasználó számára, aki háttérben futó folyamatokat szeretne indítani, mivel biztosítja, hogy a folyamatok akkor is futnak, amikor kijelentkezel. Ebben az útmutatóban az alapvető szintaxist, különféle lehetőségeket és gyakori hibákat, valamint hibaelhárítási tippeket tárgyaltunk. A nohup parancs elsajátítása lehetővé teszi a hosszú futási idővel rendelkező feladatok hatékony kezelését, amely javítja a termelékenységet és a rendszerkezelési készségeket.

Ha Linux fejlesztőként szeretnéd maximalizálni az Linux élményt, érdemes frissíteni egy megbízható Linux VPSA mi felhőalapú VPS szolgáltatása 24/7 támogatást és 99,95%-os üzemidő-garanciát kínál, ami azt jelenti, hogy alkalmazásaid minden időben zökkenőmentesen futnak, és bármikor kaphatsz segítséget. Robusztus infrastruktúrával és megbízható erőforrásokkal a mi VPS szolgáltatása a Linux programozók igényeinek kielégítésére lett tervezve. Ráadásul előtelepítve kaphatod az előnyben részesített Linux disztribúciódat, ami gyorssá és könnyűvé teszi a beállítást. Vidd Linux projektjaidat a következő szintre egy olyan VPS-sel, amely biztosítja az erőforrást és rugalmasságot, amelyekre szükséged van.

Gyakran Ismételt Kérdések

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

nohup megakadályozza, hogy egy folyamat leálljon a felhasználó kijelentkezésekor, míg & egy folyamatot háttérben futtat. A nohup biztosítja, hogy a folyamat a kijelentkezés után is fut, és kombinálva a & lehetővé teszi a háttérben futást.

Miért használjuk a nohup-ot?

nohup biztosítja, hogy egy parancs vagy szkript akkor is fut, amikor a felhasználó kijelentkezik vagy a terminál bezárul. Elengedhetetlen a hosszú futási idővel rendelkező folyamatokhoz, amelyeknek aktívnak kell maradniuk felhasználói beavatkozás nélkül.

Mi az a nohup kimeneti fájl?

A nohup.out fájl az alapértelmezett kimeneti fájl, ahova a nohup átirányítja a parancs szabványos kimeneti és hibakimeneti adatait. Ha nincs más kimeneti fájl megadva, a parancs kimenete a nohup.out fájlba kerül az aktuális könyvtárban.

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.