a nohup parancs egy másik argumentumként megadott programot hajt végre, figyelmen kívül hagyva az összes SIGHUP (hangup) jelet. SIGHUP egy olyan jel, amelyet egy folyamathoz küldenek, amikor a vezérlő terminál bezáródik.
általában, ha egy programot SSH-n futtat, ha a kapcsolat megszakad vagy kijelentkezik, a munkamenet befejeződik, és a terminálról végrehajtott összes folyamat leáll. Itt hasznos a nohup parancs., Ez figyelmen kívül hagyja az összes hangup jeleket, és a folyamat továbbra is fut.
A nohup parancs használata #
a nohup parancs szintaxisa a következő:
nohup COMMAND
a parancs nem fogad el más opciót, kivéve a standard --help és --version.,
vessünk egy pillantást a következő példára:
nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'
nohup fut a mycommand parancs az előtérben, majd átirányítja a parancs kimenetét a nohup.out fájlhoz. Ez a fájl az aktuális munkakönyvtárban jön létre . Ha a parancsot futtató felhasználónak nincs írási jogosultsága a munkakönyvtárba, akkor a fájl a felhasználó saját könyvtárában jön létre.
ha kijelentkezik vagy bezárja a terminált, a folyamat nem fejeződik be.,
A parancs futtatása a háttérben #
használata nohup az előtérben nem nagyon hasznos, mert nem lesz képes kölcsönhatásba lépni a héjjal, amíg a parancs befejeződik.
fut a parancs, a háttérben , fűzi hozzá, hogy a & szimbólum a végén a parancs:
nohup mycommand &
A kimenet tartalmazza a shell állás AZONOSÍTÓ (körül zárójelben), illetve a folyamat AZONOSÍTÓJA:
25177
használhatja a munka AZONOSÍTÓ, hogy hozza ide a parancsot be az előtérben használja a fg parancs.,
Ha valamilyen okból meg akarja szüntetni a folyamatot, használja a kill parancsot, amelyet a folyamatazonosító követ:
kill -9 25132
átirányítja a kimenetet egy fájlba #
alapértelmezés szerint nohup átirányítja a parancsot a nohup.out fájl kimenete. Ha a kimenetet egy másik fájlba szeretné átirányítani, használja a szabványos shell átirányítást.,
például a standard kimenetet és a standard hibát átirányítani a mycommand.out
nohup mycommand > mycommand.out 2>&1 &
a standard kimenetet és a standard hibát különböző fájlokra átirányítani:
nohup mycommand > mycommand.out 2> mycommand.err &
alternatívák #
számos alternatív program létezik, amelyek segítségével elkerülheti a terminál bezárásakor vagy a kapcsolat megszakításakor megszüntetendő parancsot.,
képernyő #
a képernyő vagy a GNU képernyő egy terminál multiplexer program, amely lehetővé teszi, hogy elindítson egy képernyő munkamenetet, és megnyissa az adott munkameneten belül tetszőleges számú ablakot (virtuális terminált). A képernyőn futó folyamatok továbbra is futnak, amikor az ablak nem látható, még akkor sem, ha megszakad.
Tmux #
a Tmux a GNU képernyő modern alternatívája. A Tmux segítségével létrehozhat egy munkamenetet, valamint több ablakot is megnyithat a munkameneten belül. A Tmux munkamenetek tartósak, ami azt jelenti, hogy a Tmux-ban futó programok továbbra is futnak, még akkor is, ha bezárja a terminált.,
Disown #
disown egy shell builtin, amely eltávolítja a shell job a shell job control. A nohup – tól eltérően a disown futási folyamatokon is használható.
következtetés #
nohup lehetővé teszi, hogy megakadályozza a parancsok megszüntetését, amikor kijelentkezik vagy kilép a terminálból.