Come terminare un processo su Linux
Per interrompere un programma in esecuzione sul sistema operativo Linux bisogna distinguere tra programmi in primo piano (foreground) o sullo sfondo (background).
Qual è la differenza? Un programma in foreground occupa la linea di comando per tutta l'esecuzione. Un programma in background, invece, la lascia libera.
Come terminare un processo sulla linea di comando
Per terminare un processo in primo piano ( foreground) utilizzo la combinazione di tasti CTRL+C sulla shell.
CTRL+C
Come terminare un processo in background
Per terminare un processo che sta girando sullo sfondo ( background ), utilizzo il comando kill sulla linea di comando, indicando il numero del processo.
kill [%job o pid]
Per terminare il processo si può usare indifferentemente il numero di pid oppure del job se sta girando in background.
Come funziona il comando kill
Il comando kill di Linux mi permette di terminare (killare) qualsiasi processo sul sistema tramite il numero di pid.
Un esempio pratico
Vado sulla shell e digito il comando ps per vedere tutti i processi in esecuzione sul sistema operativo.
A ogni processo è associato un numero di PID che lo identifica in modo univoco.
Ora voglio terminare il comando primo.sh che è associato al pid 2912.
Per killare il processo digito
kill 2912
Il programma è stato eliminato.
Per fare una verifica lancio nuovamente il comando ps.
Effettivamente, il processo primo.sh non è più nella lista dei processi in esecuzione.
E' stato terminato.
Come terminare un processo sulla linea comando
Per killare i processi in esecuzione sulla linea di comando, basta premere i tasti CTRL+C della tastiera.
Un esempio pratico
Apro la linea di comando e lancio il programma primo.sh.
Il programma comincia a lavorare in primo piano (foreground).
La linea comando è occupata dal processo.
Quindi, non posso digitare altri comandi sulla shell finché sta girando il programma.
Come fare a interrompere il processo?
Per interrompere l'esecuzione del processo in foreground, premo contemporaneamente i tasti CTRL e C sulla tastiera del PC.
Il processo si interrompe immediatamente. Sulla linea comando riappare la linea di comando.
A questo punto posso digitare altri comandi.
Come killare i processi in background
Per terminare un processo che sta girando in background utilizzo il comando kill.
Un esempio pratico
Vado sulla shell e lancio l'esecuzione del programma primo.sh in background.
Dopo averlo lanciato, il sistema operativo mostra il numero assegnato al processo [1] e il suo numero di pid (2783).
La linea di comando torna subito libera perché il processo gira in background
Per vedere i process i background digito il comando jobs.
Sulla linea di comando appaiono tutti i processi in esecuzione sullo sfondo.
Il processo primo.sh è nello status "in esecuzione".
Come interrompere il processo in background?
Per interrompere l'esecuzione del processo digito il comando kill seguito dal numero del processo da terminare %1.
Il numero del jobs va indicato sempre con il prefisso % davanti.
kill %1
Il programma viene immediatamente terminato.
Per fare una verifica digito nuovamente il comando jobs.
Ora il processo è effettivamente nello status "terminato".