Případně po spuštění programu můžete stisknout Ctrl-Z, která zastaví váš program, a poté zadat
bg
který přesune váš naposledy zastavený program na pozadí. (Užitečné, pokud jste začali něco bez '&' a přesto to chcete mít v pozadí, aniž byste to restartovali)
nohup cmd
nezavěsí, když zavřete terminál. výstup ve výchozím nastavení přejde na nohup.out
Můžete to zkombinovat s pozadím,
nohup cmd &
a zbavit se výstupu,
nohup cmd > /dev/null 2>&1 &
můžete také disown
příkaz. zadejte cmd
, Ctrl-Z
, bg
, disown
Skript stačí spustit na pozadí:
$ myscript &
Všimněte si, že se to liší od zadání &
uvnitř vašeho skriptu, který pravděpodobně nebude dělat to, co chcete.
Všichni prostě zapomněli disown
. Takže tady je shrnutí:
-
&
přesune úlohu do pozadí.- Zablokuje jej při pokusu o čtení vstupu a
- Přinutí shell nečekat na dokončení.
-
disown
odebere proces z ovládání úloh shellu, ale stále jej ponechá připojený k terminálu.- Jedním z výsledků je, že mu shell nepošle
SIGHUP
(Pokud shell obdržíSIGHUP
, také odešleSIGHUP
k procesu, což normálně způsobí ukončení procesu). - A samozřejmě jej lze použít pouze na úlohy na pozadí (protože jej nemůžete zadat, když je spuštěna úloha na popředí).
- Jedním z výsledků je, že mu shell nepošle
-
nohup
odpojí proces od terminálu, přesměruje jeho výstup nanohup.out
a chrání jej předSIGHUP
.- Proces neobdrží žádné odeslané
SIGHUP
. - Je zcela nezávislý na kontrole úloh a v zásadě by se dal použít i pro úlohy v popředí (ačkoli to není příliš užitečné).
- Obvykle se používá s
&
(jako podkladová práce).
- Proces neobdrží žádné odeslané