Úvod
disown
příkaz je součástí unixových shellů ksh, bash a zsh a používá se k odstranění úloh z aktuálního shellu. Jako cd
nebo pwd
, je to vestavěný příkaz shellu a nevyžaduje práva root.
Tento výukový program se bude zabývat různými způsoby použití disown
příkaz v Linuxu ukončí úlohy a udrží je spuštěné po odhlášení.

Předpoklady
- Systém se systémem Linux
- Přístup do příkazového řádku / okna terminálu
zrušit syntaxi příkazu
Základní syntaxe pro disown
příkaz je:
disown [options] jobID1 jobID2 ... jobIDN
Použití příkazu disown v Linuxu
disown
příkaz v Linuxu se používá k odstranění úloh z tabulky úloh. Můžete jej také použít k udržení delší a složitější úlohy spuštěné na pozadí i po odhlášení ze serveru.
Zkontrolujte probíhající úlohy
Chcete-li použít disown
musíte mít na svém systému Linux spuštěné úlohy.
V tomto příkladu spustíme několik úloh běžících na pozadí:
cat /dev/random > /dev/null &
ping google.com > /dev/null &
Použijte jobs
příkaz pro výpis všech aktuálních úloh:
jobs -l
Měli byste získat podobný výstup, jaký vidíte níže:

ping
příkaz je označen ‘+‘ , což znamená, že se jedná o aktuálně aktivní úlohu.
cat
příkaz je označen ‘-‘ , což znamená, že se stane aktivní úlohou, pokud ping
příkaz je ukončen.
Odebrat všechny úlohy
Chcete-li odstranit všechny úlohy z tabulky úloh, použijte následující příkaz:
disown -a

Odebrat konkrétní úlohy
Chcete-li odstranit konkrétní úlohu z tabulky úloh, použijte disown
příkaz s příslušným ID úlohy. ID úlohy je uvedeno v závorkách v tabulce úloh:

V našem příkladu, pokud chceme odstranit ping
musíme použít příkaz disown
příkaz na úloze 2:
disown %2

Pomocí disown
příkaz bez jakýchkoli voleb nebo ID úloh odstraní poslední úlohu z tabulky úloh:

Odebrat aktuálně spuštěné úlohy
Chcete-li odebrat pouze aktuálně spuštěné úlohy, použijte následující příkaz:
disown -r
V našem příkladu výše zmíněný příkaz vymaže tabulku úloh, protože obě úlohy aktuálně běží na pozadí:

Nechte úlohy běžet i po odhlášení
Jakmile opustíte terminál vašeho systému, všechny aktuálně běžící úlohy se automaticky ukončí. Chcete-li tomu zabránit, použijte disown
pomocí -h
možnost:
disown -h jobID
V našem příkladu chceme zachovat cat
příkaz běžící na pozadí. Chcete-li zabránit jeho ukončení při ukončení, použijte následující příkaz:
disown -h %1
Po použití disown
příkaz, zavřete terminál:
exit
Všechny úlohy, které jste použili disown -h
příkaz on bude pokračovat.