Laser Office s.a.s di Magnaterra Alessandro & C.

il kill di un processo, a volte non va buon fine

Posted by xer su 21 aprile 2009


A volte è necessario ‘uccidere’ un processo, di fatto il comando da eseguire è il kill

# kill ‘numero_PID’

A volte è impossibile riuscire a killare un processo, a volte il comando molto più invasivo # kill -9 ‘numero_PID’ dovrebbe risolvere, ma prima di killare un processo, sarebbe interessante scoprire perchè non si riesce a fermarli. In questi casi, solo i processi che possono essere in coda di esecuzione (run queue) possono ricevere i segnali di kill, pertanto, se non è possibile killare il processo, le cause possono essere:

  1. Il processo è bloccato in uno stato di attesa del disco (disk wait), ciò è possibile verificarlo eseguendo un comando ‘ps‘ e lo stato di disk wait è raffigurato dal flag D nella colonna STAT.
    Questo può indicare un problema hardware con l’hard disk oppure con il controller dell’hard disk, se si parla di un NFS montato, potrebbero essere problemi di congestione di rete.
  2. Il processo è sospeso (SIGSTOP). In questo caso è possibile verificarlo sempre con il nostro amico ‘ps‘ e lo stato di SIGSTOP è raffigurato dal flag T sempre nella colonna STAT.
  3. Un altro caso di impossibiltà di kill del processo potrebbe essere lo status di ZOMBIE. A volte il processo è concluso (terminated) ma il processo che lo ha generato (processo padre) invece è ancora attivo, questo può essere causato da errori di programmazione del processo che lo ha richiamato. Tale stato può essere visualizzato, sempre tramite ‘ps‘ e nella colonna STAT il processo in questione è contrassegnato  da una Z.

Le cause di processi bloccati ed unkillable possono essere anche altre, ma queste tre sono le più comuni.
Basta utilizzare il comando ‘ps’ e controllare la colonna STAT, in quella colonna sarà segnalato il perchè un processo è bloccato. Un altro comando utile per queste necessità è ‘top‘.

Alcuni esempi di ‘ps‘:

# ps -ef (linux)
# ps -auxww (prettamente per FreeBSD)

# man ps
oppure
# man top

# man kill

per avere maggiori ragguagli sui comandi.

Sorry, the comment form is closed at this time.

 
%d blogger cliccano Mi Piace per questo: