GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è l'effetto di CTRL + Z su un'applicazione unix\Linux

Un "lavoro in background" è solo uno che non interagisce con l'utente:non controlla il tty e fa solo il suo lavoro (generalmente in silenzio). Un lavoro in primo piano è il contrario, detiene il controllo del tty per interagire con l'utente.

Control-Z sospende il processo in primo piano più recente (l'ultimo processo che interagisce con il tty) (a meno che quel processo non prenda provvedimenti per ignorare la sospensione, come fanno normalmente le shell). Questo generalmente ti riporterà alla tua shell, dalla quale puoi generalmente inserire il comando bg per spostare il processo appena sospeso in background (lasciando che continui a essere eseguito) o fg per riportarlo in primo piano.


Premendo Ctrl+Z viene inviato il TSTP segnale al tuo processo. Ciò interrompe l'esecuzione (il kernel non pianificherà più tempo di CPU per il processo) e il processo è in attesa di un CONT per continuare l'elaborazione.

Puoi emulare/replicare questo tramite kill -TSTP e kill -CONT (dal kill invierà un segnale nominato al tuo processo, nonostante il nome!)

La shell ha la funzionalità di "mettere in secondo piano" il processo, ma questa è una relazione tra la shell e il processo. Il processo in sé non ha realmente il concetto di "sfondo" o "primo piano".

Vedi qui per maggiori informazioni.


Considera questo comando, che richiede ca. 4,5 secondi sul mio portatile:

echo 2^10000000 | bc -lq | wc -c

Quando premi Ctrl +Z , il calcolo sarà sospeso. Hai la possibilità di riprendere il calcolo in primo piano usando fg o riprenderlo in background utilizzando bg . Quest'ultimo è più o meno equivalente all'esecuzione di:

echo 2^10000000 | bc -lq | wc -c &

Linux
  1. Quale processo ha creato questa finestra X11?

  2. Cosa sono i "leader di sessione" in `ps`?

  3. Come sospendere e portare in primo piano un processo in background?

  4. Cosa significa nell'output di Ps?

  5. Cosa fare quando Ctrl + C non può terminare un processo?

Cosa indica questa statistica del processo?

SIGTERM vs SIGKILL:qual è la differenza?

Ripensare il DevOps:di cosa si tratta?

Cos'è un processo interrotto in Linux?

Quali porte sono utilizzate da un'applicazione

Che cos'è un comando per trovare la priorità del processo in Linux?