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.

i processi in esecuzione sul sistema

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.

la lista dei processi in esecuzione

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

un esempio di programma in esecuzione in primo piano

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

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

un esempio di esecuzione del programma in background

La linea di comando torna subito libera perché il processo gira in background

Per vedere i process i background digito il comando jobs.

elenco dei programmi in background

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.

il programma è stato interrotto

Ora il processo è effettivamente nello status "terminato".

 


 

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

FacebookTwitterLinkedinLinkedin
knowledge base

Libri di approfondimento

I processi su Linux