Ú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