Di tutto un pò sul mondo della tecnologia e non solo!
Di tutto un pò sul mondo della tecnologia e non solo!

Stop ai processi Zombie – II parte –

Questa seconda parte sarà più pratica della precedente e spero di interessarvi a tal punto da inviarmi qualche e-mail all’indirizzo webmaster@megalinux.cloud. Nell’articolo potrete capire come utilizzare i segnali e in particolare la funzione del comando Kill che si rivela fondamentale nella gestione di un sistema GNU/Linux.

COSA ATTENDONO I PROCESSI?

Ogni processo attivo è in attesa di un segnale, e quest’ultimo può essere inviato dal Kernel o dall’utente ed è identificato in modo univoco da un process id o più semplicemente PID. I processi 0 e 1 sono utilizzati dal sistema, e quindi col cavolo che potete terminarli, mentre gli altri riuscirete ad “ucciderli” senza pietà. E’ ovvio che un utente root (il famoso superutente) può interrompere i processi degli altri utenti, ma quest’ultimi potranno al massimo terminare i propri.

Cercando di iniziare l’argomento, dovete sapere che vi sono trentadue tipi di segnali differenti definiti per i processi normali (i restanti sono detti “real-time”) utilizzati in un sistema GNU/Linux. Ogni segnale possiede un nome e un numero. Ma, vediamo nella seguente tabella l’elenco dei segnali più importanti e più utilizzati.

NomeNumeroDescrizione
HUP1Questo segnale viene inviato per “rileggere” i file di configurazione di alcuni demoni senza doverli riavviare.
INT2Questo segnale viene inviato quando si blocca un processo (funzione CTRL-C).
KILL9Con questo segnale si Interrompe immediatamente e drasticamente il processo.
TERM15Questo segnale è utilizzato per chiedere al processo di uscire in modo “normale”.
TSTP20Ferma l’esecuzione, e resta in attesa per continuare. Con il comando CTRL-Z si effettua tale opzione sul
processo.
CONT18Permette di continuare l’esecuzione di quei processi “bloccati” con i segnali di SIGTSTP o SIGSTOP
Tabella 1.
(I segnali più utilizzati)

Ogni nome del segnale è preceduto da un prefisso SIG e quindi il segnale INT diventa SIGINT, TERM diventa SIGTERM e così via.

IN PRATICA, L’UTILIZZO DEL COMANDO KILL

Per visualizzare i segnali basta digitare il comando kill -l. Per esempio, il seguente comando visualizza l’utilizzo del segnale TERM.

# kill -l 15

Di seguito un breve esempio dell’utilizzo del comando SIGTERM ai processi con PID 1567 e 1788.

# kill -15 1567 1788

# kill -s SIGTERM 1567 1788

L’utilizzo del segnale 15 (SIGTERM) permette un arresto “silenzioso” del processi, mentre il segnale  9 (SIGKILL) lo termina in modo drastico. Di seguito un altro esempio da shell bash.

# kill -9 1567 1788

Con l’utilizzo del segnale 9 il processo termina in modo immediato senza chiudere i file aperti e senza “pulire” ciò che il processo ha generato. Al posto del segnale 9 bisognerebbe utilizzare il segnale -15 così da non lasciare i dati elaborati dal processo in uno stato inconsistente.

Pagina Successiva

No votes yet.
Please wait...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

nove − 7 =

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.