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.