Ho un problema con alcuni processi bloccati in uno stato D su Ubuntu 10.04.3 LTS.
Sono in questo stato dal 5 novembre (oggi è il 6 dicembre). Comprendo che si tratta di stati di sonno ininterrotti spesso legati all'attesa di dati dall'hardware come un disco rigido. Questo è un server di produzione, quindi il riavvio è l'ultima risorsa, qualcuno è in grado di far luce su quali potrebbero essere questi processi?
Questo è l'output per gli elementi dello stato D da ps -aux
www-data 22851 0.0 0.0 0 0 ? D Nov05 0:00 [2637.64]
www-data 26306 0.0 0.0 4008 12 ? D Nov05 0:00 ./2.6.37
www-data 26373 0.0 0.0 4008 12 ? D Nov05 0:00 ./n2
www-data 26378 0.0 0.0 4008 12 ? D Nov05 0:00 ./n2
Questo è l'output di ps axl | awk '$10 ~ /D/'
per qualche informazione in più.
0 33 22851 1 20 0 0 0 econet D ? 0:00 [2637.64]
1 33 26306 1 20 0 4008 12 ec_dev D ? 0:00 ./2.6.37
1 33 26373 1 20 0 4008 12 ec_dev D ? 0:00 ./n2
1 33 26378 1 20 0 4008 12 ec_dev D ? 0:00 ./n2
C'è un modo per ucciderli? Avere processi in questo stato al riavvio causa problemi?
Questo è lo stato temuto non interrompibile (TASK_UNINTERRUPTIBLE) di un processo. Questo è lo stato in cui il processo non reagisce ai segnali fino a quando non viene eseguito ciò che ha iniziato ad aspettare. Purtroppo è un male necessario. Vedi qui e qui Che cos'è un processo ininterrotto? .
La mia risposta è riavviare il sistema.
Il riavvio causa problemi?
Difficile da dire, potrebbe non esserlo. Il processo che si trova nello stato D potrebbe dover eseguire alcuni aggiornamenti cruciali che non riavvierà al riavvio.
Se davvero non puoi permetterti di riavviare, prova a trovare il disco su cui il processo è in attesa e vedi se il disco funziona correttamente aprendo, chiudendo, leggendo/scrivendo in esso
No, non puoi ucciderli, punto. kill -9
non funziona neanche. E non è un bug del kernel, è progettato. Tutti i segnali vengono bloccati fino a quando quei processi lasciano lo stato D. Lasciano lo stato D o il sistema viene riavviato. No, il riavvio non ha alcun problema con questi ragazzi.
I soliti colpevoli di questo tipo di problema sono i dispositivi rimovibili come un cdrom. Il dispositivo potrebbe essere difettoso o qualcuno ha trovato il modo di fare qualcosa di stupido.