Come visualizzare i processi in background su Linux

Per vedere i processi in esecuzione sullo sfondo ( background ) sul sistema operativo Linux utilizzo il comando jobs.

jobs

Il comando mostra l'elenco dei processi in background.

Un esempio pratico

Apro la shell e digito il comando jobs sulla linea di comando.

l'output del comando jobs

Il comando jobs visualizza i processi in esecuzione in background in questo momento.

Nota. Ogni processo è associato a un numero di job, visualizzato tra parentesi quadre, che lo identifica in modo univoco e lo distingue dagli altri.

Ogni riga è associata un processo in background.

  • Numero di job. La prima informazione è il numero di job del processo. E' indicato tra parentesi quadre.
  • Lo status. La seconda informazione è lo status del processo: in esecuzione (running), terminato (done).
  • Il nome del programma. La terza informazione è il nome del programma che sta girando nel processo.

Cosa significa il segno + e - vicino ai jobs

Vicino a due job viene mostrato il simbolo più (+) e meno (-).

  • Il simbolo + è associato dinamicamente all'ultimo jobs avviato in background o l'ultimo ad essere stato fermato in foreground (primo piano).
  • Il simbolo - è associato dinamicamente al job precedente.

il job [2] è associato al simbolo - mentre il job [3] al simbolo + in quanto è l'ultimo

A cosa servono? I simboli + e - sono utili per accelerare le operazioni sull'ultimo job e il job precedente perché sono simboli associati dinamicamente alla posizione del job e sono utilizzabili in sostituzione ai relativi numeri cardinali dei jobs.

Un esempio pratico

Per terminare l'ultimo jobs dovrei utilizzare il comando kill seguito dal simbolo % e dal numero del job.

In questo caso, il numero di job dell'ultimo processo in background è il numero [3].

kill %3

Tuttavia, potrei anche scrivere %+ senza indicare il numero di job.

kill %+

Il sistema terminerebbe l'ultimo processo ossia il job [3].

In entrambi i casi viene terminato il job [3]

in entrambi i casi viene terminato il job [3]

Nota. Lo stesso risultato si otterrebbe inserendo come parametro %% o nessun parametro. Il sistema operativo considererebbe di default l'ultimo job corrente ossia %+.

Allo stesso modo, se volessi terminare il penultimo job [2] anziché kill %2 potrei scrivere

kill %-

Il sistema operativo terminerebbe automaticamente il penultimo jobs della lista ossia il job [2].

il sistema operativo termina il penultimo job

Dopo qualche istante dalla terminazione del job [2], il job [1] diventa il job precedente.

Quindi il simbolo meno (-) viene riassociato dinamicamente al job [1].

Cosa accade se non indico nulla dopo kill?

Quando il comando kill viene eseguito senza parametri

kill

il sistema operativo considera di default il simbolo + e agisce sull'ultimo job corrente.

Pertanto, sarebbe come scrivere

kill %+

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Libri di approfondimento

I processi su Linux