Un processus zombie , qui ne devrait utiliser aucune ressource (RAM et CPU), monopolise un cœur entier sur mon installation Ubuntu 11.10 Desktop 8 bits 64 bits.
C'est la sortie de ps -el|grep Z
:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 Z 1000 10317 1 99 80 0 - 0 exit ? 19:27:15 java <defunct>
... et voici un extrait de top
:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10317 deltik 20 0 0 0 0 Z 100 0.0 1170:17 java <defunct>
1424 root 20 0 612m 193m 158m S 14 2.4 287:17.11 Xorg
12580 deltik 20 0 710m 135m 46m S 5 1.7 27:31.07 compiz
C'est ainsi que le processus zombie a vu le jour:
- J'ai ouvert un JAR Java appelé minecraft.jar . Ce lanceur télécharge un autre fichier JAR dans ~ / .minecraft / bin / minecraft.jar
- Ce fichier JAR était en cours d'exécution lorsque j'ai verrouillé mon ordinateur avec
xscreensaver
. - Ensuite, j'ai entré mon mot de passe pour déverrouiller l'ordinateur et j'ai vu que la fenêtre Minecraft était gelée.
- J'ai essayé de le tuer (PID 10317) avec
gnome-system-monitor
. C'est devenu un zombie. kill -9 10317
était inefficace.xkill
seulement fermé la fenêtre intitulée "Minecraft"; cela n'a pas clôturé lejava
processus sous-jacent .
Les informations pertinentes:
- Le pilote graphique est FGLRX , et il a causé des problèmes notoires avec Unity d' Ubuntu 11.04 et Ubuntu 11.10 , y compris parfois une utilisation élevée du processeur de
Xorg
etcompiz
.
Je veux savoir:
- De quelle manière existe-t-il pour détruire ce processus
java
sans redémarrer, le cas échéant? - Pourquoi ce problème se produit-il?
- Que puis-je faire pour éviter que ce problème ne se reproduise?
Réponses:
Le processus a déjà été réparé
init
, il devrait donc être récolté (sinon, la solution serait probablement de tuer son parent). Il semble être coincéexit
, basé sur leWCHAN
terrain.Il peut en fait faire quelque chose (comme créer un vidage de mémoire) qui se terminera et disparaîtra de lui-même. Malheureusement, il tourne probablement dans le noyau à cause d'un pilote cassé et, finalement, votre seule option sera de redémarrer.
la source
As-tu essayé
sudo kill -SIGCHLD 1
? Si cela ne fonctionne pas, vous devrez redémarrer le système.Plus d'informations à ce sujet: /programming/6335730/zombie-process-cant-be-killed et /server/89759/init-never-reaping-zombie-defunct-processes
la source
Les processus zombies sont morts mais n'ont pas encore été nettoyés (récolté est le terme correct) et
kill
ne fonctionne donc pas sur eux comme un processus normal. Le processus est toujours dans la table de processus, mais lorsqu'il s'agit d'un zombie, les ressources ont été désallouées.Vous pouvez essayer d'envoyer un
SIGCHLD
signal au parent du processus, sinon init aurait dû le capter et le récupérer éventuellement. Si vous souhaitez accélérer le processus, vous pouvez simplement redémarrer.la source
Ceci est un bug du noyau. Utilisez-vous ecryptfs pour crypter votre répertoire personnel? Un bug a été déposé à ce sujet sur launchpad.net.
la source