logo

Příkaz nohup v Linuxu s příklady

Každý příkaz v Linuxu spouští proces v okamžiku jeho provádění, který se automaticky ukončí při opuštění terminálu. Předpokládejme, že spouštíte programy přes SSH a pokud spojení přeruší, relace bude ukončena, všechny prováděné procesy se zastaví a můžete čelit obrovské náhodné krizi. V takových případech může být spouštění příkazů na pozadí pro uživatele velmi užitečné, a to je místo příkaz nohup přichází do obrazu. nohup (Žádné zavěšení) je příkaz v systémech Linux, který spouští proces i po odhlášení z shellu/terminálu.

Příkaz Nohup

Obvykle je každý proces v systémech Linux odeslán a SIGHUP (zavěšení signálu) která je zodpovědná za ukončení procesu po zavření/opuštění terminálu. Příkaz Nohup zabraňuje procesu přijímat tento signál při zavření nebo opuštění terminálu/shell. Jakmile je úloha spuštěna nebo spuštěna pomocí příkazu nohup, stdin nebudou uživateli dostupné a nohup.out soubor se používá jako výchozí soubor pro stdout a stderr . Pokud je výstup příkazu nohup přesměrován do jiného souboru, nohup.out soubor se nevygeneruje.



Syntaxe příkazu Nohup

Syntaxe pro použití příkazu Nohup je jednoduchá:

řetězec na znak java
nohup command [options] &>
  • `command`> : Určuje příkaz nebo skript, který chcete spustit.
  • `[options]`> : Volitelné argumenty nebo příznaky, které upravují chování příkazu.
  • `&`> : Umístěním znaku ampersand (&) na konec příkazu dá shellu pokyn spustit příkaz na pozadí.

Práce s příkazem nohup

Kontrola verze Nohup

Kontrola verze Nohup je jednoduchý proces. Verzi Nohup nainstalovanou ve vašem systému můžete obvykle zkontrolovat pomocí ` --version`> vlajka. Stačí provést následující příkaz:



nohup --version>

Výstup:

Spuštění procesu pomocí Nohup

Chcete-li spustit proces pomocí Nohup, jednoduše přidejte požadovaný příkaz snohup>. Pokud například chcete spustit bash skript s názvemgeekfile.py>pomocí Nohup byste použili následující příkaz:



nohup bash geekfile.sh>

Výstup:

Chcete-li přesměrovat výstup na výstup.txt soubor:

nohup bash geekfile.sh>output.txt>

Výstup:

mvc java

Spuštění procesu na pozadí pomocí Nohup

Chcete-li spustit příkaz na pozadí, „ &' symbol je připojen na konec příkazu. Po spuštění se po spuštění příkazu na pozadí nevrátí do příkazového řádku shellu. Lze jej vrátit do popředí pomocí fg příkaz.

nohup bash geekfile.sh & fg>

Výstup:

boto3

Poznámka: Číslo v hranatých závorkách představuje id práce a číslo vedle je id procesu .

Chcete-li spustit více příkazů na pozadí

Příkaz nohup lze použít ke spuštění více příkazů na pozadí.

nohup bash -c 'commands'>

Příklad:

nohup bash -c 'cal && ls'>

Výstup:

Zde bude výstup standardně uložen v nohup.out . Chcete-li jej přesměrovat, zadejte:

nohup bash -c 'commands'>název_souboru.txt>

Příklad:

nohup bash -c 'cal && ls'>output.txt>

Výstup:

char na řetězec v jazyce Java

Příkaz nohup v Linuxu – Nejčastější dotazy

Co je nohup> příkaz v Linuxu a co dělá?

The nohup> příkaz znamená zákaz zavěšení. Umožňuje vám spouštět příkaz nebo shell skript takovým způsobem, že pokračuje v běhu i po odhlášení nebo zavření terminálu. Tím se zabrání ukončení příkazu při ukončení relace terminálu.

čtení ze souboru csv v jazyce Java

Jak mohu použít nohup> příkaz?

Použít nohup> , jednoduše jej přidejte před příkaz, který chcete spustit. Například:

nohup command_to_run &>

The &> symbol na konci přesune příkaz do pozadí, což vám umožní pokračovat v používání terminálu, zatímco příkaz běží.

Kde ano nohup> odeslat výstup příkazu?

Ve výchozím stavu, nohup> přesměruje standardní výstup (stdout) i standardní chybu (stderr) do souboru s názvem nohup.out> v aktuálním adresáři. V případě potřeby můžete zadat jiný výstupní soubor.

Mohu použít nohup> s interaktivními příkazy nebo programy?

Zatímco nohup> se obvykle používá s neinteraktivními příkazy nebo skripty, můžete jej použít s interaktivními příkazy. Chování však může být nepředvídatelné, zejména pokud příkaz očekává vstup od uživatele. Obecně se doporučuje vyhnout se použití nohup> s interaktivními programy.

Jak mohu zkontrolovat stav spuštěného příkazu s nohup> ?

Od té doby nohup> spustí příkaz na pozadí, můžete použít standardní nástroje Linuxu, jako je ps> nebo top> zkontrolovat stav procesu. Například:

ps aux | grep>

Zobrazí se vám informace o procesu, včetně jeho PID (Process ID), které pak můžete použít ke správě nebo sledování příkazu.

Závěr

V Linuxu, když spustíte příkaz, obvykle se zastaví, když zavřete terminál. Ale s nohup> , můžete jej nechat běžet i po zavření terminálu. To je velmi užitečné, zvláště pokud spouštíte příkazy vzdáleně a nechcete, aby se zastavily, pokud vaše připojení přestane fungovat.nohup>funguje tak, že chrání váš příkaz před signály, které by jej normálně zastavily. Stačí přidatnohup>před vaším příkazem a pokračuje. Výstup příkazu můžete také odeslat do souboru. Nezapomeňte, že je to nejlepší pro neinteraktivní úlohy a stav příkazu můžete zkontrolovat pomocí nástrojů, jako jeps>. Tak,nohup>je jako záchranná síť pro vaše příkazy, která zajišťuje, že se budou choulit, i když se nedíváte.