Řekli jsme si, co je to proces na pozadí systému Linux a jak jej správně spustit. V tomto článku si povíme, jak v tomto režimu funguje.
Spuštění skriptu v Linuxu je jedním úkolem, je třeba zajistit, aby správně fungoval hned po zavření terminálu. Terminál se zavírá následujícím způsobem: musíte kliknout na křížek, který se nachází v horním rohu obrazovky, to vede k ukončení všech procesů na pozadí. Pro případ ztráty spojení s interaktivním shellem existuje několik způsobů jejich uložení
Za prvé: odeberte frontu úloh z úlohy pomocí příkazu disown
:
disown
Stejně jako v předchozích případech, pokud běží více souběžných procesů, je třeba zadat číslo toho, vůči kterému bude akce provedena:
disown %1
Ujistěte se, že úloha není v seznamu úloh. Jak to udělat: V případě, že je úkol spuštěn, je třeba provést kontrolu, zda je úkol splněn. Použijte nástroj jobs -l
. Pro zobrazení celého seznamu běžících procesů slouží příkaz:
ps aux
Další způsob: Spuštěné procesy uložíte příkazem nohup
. Tento příkaz po provedení zase spustí jiný příkaz, všechny signály SIGHUP
budou ignorovány.
Příkaz můžete spustit na pozadí takto:
nohup command &
Jak vidíte na obrázku výše, výstup příkazu bude odeslán do souboru nohup.out.
Nejdůležitější je, že po odhlášení a zavření terminálu bude proces nadále fungovat. Existují nástroje, které umožňují spustit dvě nebo více relací najednou. Umožňují to zejména programy Screen
a Tmux
.
Screen
neboli GNU Screen
je terminálový multiplexer, který umožňuje spustit jednu pracovní relaci a otevřít v ní libovolný počet oken (virtuálních terminálů). Procesy spuštěné v tomto programu poběží, i když jsou jejich okna neviditelná nebo program přestal běžet.Tmux
je modernější alternativou ke GNU Screen
. Funkce Tmuxu
se však zásadně neliší - v rámci jedné relace můžete stejným způsobem otevřít mnoho oken. Úlohy spuštěné v Tmuxu
pokračují v běhu i v případě, že je terminál zavřen.Tento problém jsme vyřešili, jak vidíte, vše je elementární a jednoduché.