Ugrás a fő tartalomra
50% kedvezmény minden csomagra, korlátozott ideig. Már $2.48/mo
8 min left
Szerverek és OS

Hogyan működik a nohup parancs Linuxon: szintaxis, felhasználási esetek és példák

Ada Lovegood Szerző: Ada Lovegood 8 perc olvasás Frissítve Jul 14, 2024
nohup command

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.

A nohup opciók felfedezése

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 meg róla, hogy a parancs nem igényel interaktív bemenetet.
  • 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.

Összegzé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.

Share

Több a blogról

Folytassa az olvasást.

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.