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

Tabella dei segnali
Nome Numero Descrizione
HUP 1 Questo segnale viene inviato per “rileggere” i file di configurazione di alcuni demoni senza doverli riavviare.
INT 2 Questo segnale viene inviato quando si blocca un processo (funzione CTRL-C).
KILL 9 Con questo segnale si Interrompe immediatamente e drasticamente il processo.
TERM 15 Questo segnale è utilizzato per chiedere al processo di uscire in modo “normale”.
TSTP 20 Ferma l’esecuzione, e resta in attesa per continuare. Con il comando CTRL-Z si effettua tale opzione sul
processo.
CONT 18 Permette 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.

No votes yet.
Please wait...
Voting is currently disabled, data maintenance in progress.

Lascia un commento

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

18 + quattordici =

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