Linux Nohup Příkaz

nohup příkaz spustí další program, uvedené jako svůj argument a ignoruje všechny SIGHUP (hangup) signály. SIGHUP je signál, který je odeslán do procesu, když je jeho řídící terminál uzavřen.

obvykle, když spustíte program přes SSH, pokud vaše připojení klesne nebo se odhlásíte, relace je ukončena a všechny procesy provedené z terminálu se zastaví. Zde se hodí příkaz nohup., Ignoruje všechny zavěšené signály a proces bude pokračovat.

Jak Používat nohup Příkaz #

syntaxe nohup příkaz je následující:

nohup COMMAND 

příkaz nepřijímá žádné další možnosti, kromě standardní --help --version.,

podívejme se na následující příklad:

nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'

nohup běží mycommand příkaz v popředí a přesměruje výstup příkazu nohup.out soubor. Tento soubor je vytvořen v aktuálním pracovním adresáři . Pokud uživatel, který spustil příkaz nemá oprávnění k zápisu do pracovního adresáře, soubor je vytvořen v domovském adresáři uživatele.

Pokud se odhlásíte nebo zavřete terminál, proces není ukončen.,

spuštění Příkazu na Pozadí #

Pomocí nohup v popředí není velmi užitečné, protože nebudete moci interagovat s shellem až příkaz dokončí.

Chcete-li spustit příkaz na pozadí , připojit & symbol na konci příkazu:

nohup mycommand &

výstup zahrnuje shell job ID (obklopen závorkách) a ID procesu:

 25177

můžete použít ID úlohy přinést příkaz do popředí pomocí fg příkaz.,

Pokud z nějakého důvodu chcete ukončit proces, pomocí kill příkaz následovaný ID procesu:

kill -9 25132

Přesměrování Výstupu do Souboru #

ve výchozím nastavení, nohup přesměruje výstup příkazu nohup.out soubor. Pokud chcete přesměrovat výstup do jiného souboru, použijte standardní přesměrování shellu.,

například přesměrovat standardní výstup a standardní chybový mycommand.out použití:

nohup mycommand > mycommand.out 2>&1 &

přesměrování standardního výstupu a standardní chybu rozdílných souborů:

nohup mycommand > mycommand.out 2> mycommand.err &

Alternativy #

Existuje několik alternativních programů, které můžete použít, aby se zabránilo příkaz, který má být ukončena při zavření terminálu nebo odpojen.,

Screen #

Obrazovky nebo GNU Screen je terminálový multiplexer program, který umožňuje start screen a otevřít libovolný počet oken (virtuální terminály) uvnitř této relaci. Procesy běžící na obrazovce se budou i nadále spouštět, pokud jejich okno není viditelné, i když se odpojíte.

Tmux #

Tmux je moderní alternativa k obrazovce GNU. S Tmuxem můžete také vytvořit relaci a otevřít více oken uvnitř této relace. Relace Tmux jsou trvalé, což znamená, že programy běžící v Tmuxu budou i nadále spouštět, i když terminál zavřete.,

Disown #

disown je shell builtin, který odstraní práci shellu z kontroly úloh shellu. Na rozdíl od nohup můžete použít disown také pro spuštěné procesy.

závěr #

nohup umožňuje zabránit ukončení příkazů při odhlášení nebo opuštění terminálu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *