Úvod
SIGHUP (Signal Hang UP) je signál, který ukončí linuxový proces při zavření jeho ovládacího terminálu. Pokud omylem zavřete terminál nebo ztratíte spojení se serverem, všechny procesy běžící v daný okamžik se automaticky ukončí.
Pomocí nohup Příkaz je jedním ze způsobů blokování SIGHUP signál a umožnění dokončení procesů i po odhlášení z terminálu/shell.
V tomto článku se dozvíte, jak používat nohup příkaz při spuštěných procesech.
syntaxe nohup
Syntaxe pro použití nohup příkaz je:
nohup [command] [argument] Možnosti nohup
nohup příkaz obsahuje dvě základní možnosti příkazu, --help a --version možnosti.
Chcete-li zobrazit zprávu nápovědy, spusťte příkaz:
nohup --help
Chcete-li zobrazit informace o verzi, zadejte:
nohup --version
Příklady nohup
Existuje několik způsobů, jak použít nohup příkaz, včetně spuštění požadovaného procesu na pozadí, spuštění více procesů současně nebo přesměrování výstupu do jiného souboru.
Níže uvedené příklady vysvětlují běžné případy použití nohup příkaz.
1. Spuštění procesu s nohoup
Chcete-li spustit příkaz pomocí nohup bez jakýchkoli argumentů, jednoduše postupujte podle syntaxe:
nohup [command] Shell ignoruje výstup a připojí ho k nohup.out soubor.
Například spuštěním example.sh bash skript (což je jednoduchý Hello World skript) by měl zobrazit výzvu Ahoj světe zprávu v souboru nohup.out :
nohup bash example.sh Ověřte obsah souboru pomocí:
cat nohup.out
2. Spuštění procesu na pozadí pomocí nohup
Spuštění procesu Linuxu na pozadí uvolní terminál, ve kterém pracujete. Spuštění procesu Linuxu na pozadí pomocí nohup přidejte & symbol na konci příkazu:
nohup [command] & Chcete-li například spustit soubor example.sh bash skript na pozadí, použijte příkaz:
nohup bash example.sh & Výstup zobrazuje ID úlohy prostředí a ID procesu - [1] 7366 v příkladu níže.
Chcete-li příkaz přenést do popředí, zadejte:
fg
Výstup indikuje, zda proces probíhá nebo je dokončen.
3. Spuštění více procesů na pozadí pomocí nohup
nohup bach -c '[command1] && [command2]'
Nahraďte [command1] a [command2] s příkazy dle vašeho výběru. V případě potřeby přidejte další příkazy a oddělte je pomocí && .
Chcete-li například zobrazit datum/čas a kalendář aktuálního měsíce, spusťte:
nohup bash -c 'date && cal' Protože výstup je směrován na nohup.out soubor, pomocí příkazu cat vypište obsah souboru a ověřte výše uvedený příkaz:
cat nohup.out Na výstupu se zobrazí datum a kalendář, které jste požadovali výše uvedeným příkazem.
4. Přesměrování výstupu do jiného souboru
Jak je uvedeno v části výše, nohup zaznamená všechny výstupní zprávy a chyby do nohub.out soubor.
Přesměrujte tyto zprávy zadáním vlastního umístění v příkazu:
nohup [command] > /path/to/output/file.txt
V níže uvedeném příkladu je výstup příkazu nohup bash -c 'date && cal' je přesměrován na output.txt soubor. Zkontrolujte výstup příkazem:
cat output.txt