GNU/Linux >> Znalost Linux >  >> Linux

Jaký je účinek CTRL + Z na aplikaci unix\Linux

"Ú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 &

Linux
  1. Jak zkontrolovat, jaké signály proces poslouchá?

  2. Co je nepřerušitelný proces?

  3. Co dělat, když Ctrl + C nemůže zabít proces?

  1. Jaká je definice relace v linuxu?

  2. Jaké porty aplikace používá

  3. Co je to příkaz k nalezení priority procesu v Linuxu?

  1. Jaký proces vytvořil toto okno X11?

  2. Co jsou „vedoucí relací“ v `ps`?

  3. Co dělá Ctrl+v ve Vimu?