GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo detener el proceso 'ininterrumpible' en Linux?

Respuesta simple:no puedes.

Respuesta más larga:el sueño ininterrumpido significa que el proceso no se despertará con señales. Sólo puede ser despertado por lo que está esperando. Cuando tengo tales situaciones, por ejemplo. con CD-ROM, generalmente reinicio la computadora usando suspender en disco y reanudar.


Matar un proceso ininterrumpible tiene éxito, pero no lo hace inmediatamente. El proceso no desaparecerá hasta que realmente reciba la señal. Por lo tanto, enviar una señal por sí solo no es suficiente para deshacerse del proceso, también debe despertarlo del modo de suspensión ininterrumpida.

Tanel Poder ha escrito una gran guía para analizar los procesos del estado D. Es muy típico que este estado sea causado por una E/S incompleta, p. falla de red. slm ha publicado algunos consejos muy útiles sobre el superusuario sobre cómo desatascar la E/S de la red y también sobre el problema en sí.

Personalmente, cuando trato con Windows en VirtualBox, e incluso con Wine, a menudo me encuentro con este problema debido a una E/S de cdrom que nunca se completa (supongo que es algún tipo de verificación de presencia de disco). Los dispositivos ATA se pueden restablecer, lo que probablemente desatascará el proceso. Por ejemplo, estoy usando el siguiente pequeño script para restablecer mis dos unidades ópticas, liberando los procesos que están bloqueando:

echo 1 > /sys/block/sr0/delete
echo 1 > /sys/block/sr1/delete
echo "- - -" > /sys/class/scsi_host/host7/scan

El estado D básicamente significa que el proceso está esperando E/S de disco u otro bloque de E/S que no se puede interrumpir. A veces, esto significa que el kernel o el dispositivo está tratando febrilmente de leer un bloque defectuoso (especialmente desde un disco óptico). A veces significa que hay algo más.

El proceso no se puede matar hasta que salga del estado D. Averigüe qué está esperando y arréglelo. La manera fácil es reiniciar. A veces, quitar el disco en cuestión ayuda, pero eso puede ser bastante peligroso:una falla de hardware catastrófica irreparable si no sabe lo que está haciendo (léase:sale humo).


Linux
  1. Cómo instalar vtop en Linux

  2. Cómo pausar/reanudar un proceso en Linux

  3. ¿Cómo puedo monitorear el uso de E/S de la red por proceso en Linux?

  4. ¿Cómo se informa el uso de la memoria en Linux?

  5. ¿Cómo comprobar la utilización de E/S de disco por proceso?

Cómo matar un proceso o detener un programa en Linux

Cómo enumerar los procesos en ejecución en Linux

Cómo matar un proceso en Linux

Cómo matar procesos Zombie en Linux

Cómo MATAR un proceso en Linux

Costo total de E/S de un proceso