GNU/Linux >> Tutoriels Linux >  >> Linux

Comment arrêter le processus "sans interruption" sous Linux ?

Réponse simple :vous ne pouvez pas.

Réponse plus longue :le sommeil ininterrompu signifie que le processus ne sera pas réveillé par des signaux. Il ne peut être réveillé que par ce qu'il attend. Quand je reçois de telles situations, par exemple. avec le CD-ROM, je réinitialise généralement l'ordinateur en utilisant la suspension sur disque et en reprenant.


Tuer un processus ininterruptible réussit, mais il ne le fait pas immédiatement. Le processus ne disparaîtra pas tant qu'il n'aura pas reçu le signal. Donc, envoyer un signal seul ne suffit pas pour se débarrasser du processus, vous devez également le réveiller d'un sommeil ininterrompu.

Tanel Poder a écrit un excellent guide pour analyser les processus à l'état D. Il est très courant que cet état soit provoqué par des E/S incomplètes, par ex. panne de réseau. slm a publié des indications très utiles sur le superutilisateur pour débloquer les E/S réseau, ainsi que sur le problème lui-même.

Personnellement, lorsque je traite avec Windows sur VirtualBox, et même avec wine, je rencontre souvent ce problème à cause d'une entrée/sortie de cdrom qui ne se termine jamais (je suppose que c'est une sorte de vérification de la présence du disque). Les périphériques ATA peuvent être réinitialisés, ce qui débloquera probablement le processus. Par exemple, j'utilise le petit script suivant pour réinitialiser mes deux lecteurs optiques, débloquant les processus qu'ils bloquent :

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

L'état D signifie essentiellement que le processus attend des E/S de disque ou d'autres E/S de bloc qui ne peuvent pas être interrompues. Parfois, cela signifie que le noyau ou le périphérique essaie fiévreusement de lire un bloc défectueux (en particulier à partir d'un disque optique). Parfois, cela signifie qu'il y a autre chose.

Le processus ne peut pas être tué tant qu'il n'est pas sorti de l'état D. Découvrez ce qu'il attend et corrigez cela. Le moyen le plus simple est de redémarrer. Parfois, retirer le disque en question aide, mais cela peut être plutôt dangereux :une panne matérielle catastrophique irréparable si vous ne savez pas ce que vous faites (lire :de la fumée qui sort).


Linux
  1. Comment tuer un processus zombie sous Linux

  2. Comment limiter l'utilisation du processeur d'un processus sous Linux

  3. Comment installer vtop sur Linux

  4. Comment purger les caches d'E/S disque sous Linux ?

  5. Comment mettre en pause/reprendre un processus sous Linux

Comment tuer un processus ou arrêter un programme sous Linux

Comment répertorier les processus en cours d'exécution sous Linux

Comment arrêter un processus dans MySQL

Comment tuer un processus sous Linux

Comment tuer les processus Zombie sous Linux

Comment tuer un processus sous Linux