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.
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.
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]
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].
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.