GNU/Linux >> Znalost Linux >  >> Linux

Příkaz Linux Nohup

nohup příkaz spustí jiný program zadaný jako jeho argument a ignoruje všechny SIGHUP (zavěšení) signály. SIGHUP je signál, který je odeslán do procesu, když je jeho řídicí terminál uzavřen.

Obvykle, když spustíte program přes SSH, pokud vaše připojení přestane fungovat nebo se odhlásíte, relace se ukončí a všechny procesy prováděné z terminálu se zastaví. Zde se nachází nohup příkaz přijde vhod. Ignoruje všechny signály zavěšení a proces bude pokračovat.

Jak používat příkaz nohup #

Syntaxe pro nohup příkaz je následující:

nohup COMMAND [ARGS]

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

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

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

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

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

Spuštění příkazu na pozadí #

Pomocí nohup v popředí není příliš užitečné, protože nebudete moci komunikovat s shellem, dokud nebude příkaz dokončen.

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

nohup mycommand &

Výstup obsahuje ID úlohy prostředí (ohraničené závorkami) a ID procesu:

[1] 25177

Pomocí ID úlohy můžete přenést příkaz do popředí pomocí fg příkaz.

Pokud z nějakého důvodu chcete proces ukončit, použijte 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 na nohup.out soubor. Pokud chcete přesměrovat výstup do jiného souboru, použijte standardní přesměrování shellu.

Například pro přesměrování standardního výstupu a standardní chyby do mycommand.out byste použili:

nohup mycommand > mycommand.out 2>&1 &

Chcete-li přesměrovat standardní výstup a standardní chybu do jiných souborů:

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

Alternativy #

Existuje několik alternativních programů, které můžete použít, abyste zabránili ukončení příkazu při zavření terminálu nebo odpojení.

Obrazovka #

Screenor GNU Screen je program terminálového multiplexeru, který vám umožňuje spustit relaci obrazovky a otevřít libovolný počet oken (virtuálních terminálů) uvnitř této relace. Procesy běžící na obrazovce budou pokračovat, když jejich okno nebude viditelné, i když budete odpojeni.

Tmux #

Tmuxi je moderní alternativa k obrazovce GNU. Pomocí Tmux můžete také vytvořit relaci a otevřít v ní více oken. Relace Tmux jsou trvalé, což znamená, že programy běžící v Tmux budou pokračovat v běhu, i když zavřete terminál.

Odmítnout #

disown je vestavěný shell, který odstraňuje úlohu shellu z ovládání úlohy shellu. Na rozdíl od nohup , můžete použít disown i na běžících procesech.

Závěr č.

nohup umožňuje zabránit ukončení příkazů, když se odhlásíte nebo opustíte terminál.

Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.


Linux
  1. Linuxový příkaz mv

  2. Linux du command

  3. Linuxový ip příkaz

  1. Jak používat příkaz Linux nohup

  2. Linux cd příkaz

  3. Možnosti příkazu nohup v Linuxu

  1. Linux příkaz ifconfig

  2. Linux Time Command

  3. Příkaz Ping v Linuxu