"Úloha na pozadí" je pouze taková, která neinteraguje s uživatelem - neřídí tty a jen dělá svou věc (obecně tiše). Úloha v popředí je obrácená, drží kontrolu nad tty pro interakci s uživatelem.
Control-Z pozastaví nejnovější proces v popředí (poslední proces, který interaguje s tty) (pokud tento proces nepodnikne kroky k ignorování pozastavení, jako to běžně dělají shelly). To vás obecně vrátí zpět do vašeho shellu, ze kterého můžete obecně zadat příkaz bg
přesunout právě pozastavený proces na pozadí (nechat ho pokračovat v běhu) nebo fg
aby se vrátil do popředí.
Stisknutím Ctrl+Z odešlete TSTP
signál pro váš proces. Tím se zastaví provádění (jádro nebude naplánovat další procesorový čas procesu) a proces čeká na CONT, aby mohl pokračovat ve zpracování.
Toto můžete emulovat/replikovat pomocí kill -TSTP
a kill -CONT
(od kill
vyšle nominovaný signál vašemu procesu, navzdory názvu!)
Shell má funkci 'pozadí' procesu, ale toto je vztah mezi shellem a procesem. Samotný proces ve skutečnosti nemá pojem „pozadí“ nebo „popředí“.
Více informací naleznete zde.
Zvažte tento příkaz, který trvá cca. 4,5 sekundy na mém notebooku:
echo 2^10000000 | bc -lq | wc -c
Když stisknete Ctrl +Z , výpočet bude pozastaven. Máte možnost obnovit výpočet v popředí pomocí fg
nebo jej obnovte na pozadí pomocí bg
. To druhé je víceméně ekvivalentní spouštění:
echo 2^10000000 | bc -lq | wc -c &