Fusils de chasse virtuels?
unix
job-control
zombie
Jldugger
la source
la source
Le processus zombie (en fait, ils sont appelés
<defunct>
) n'est pas vraiment un processus. C'est seulement une entrée dans la table de processus, ainsi le processus parent peut fairewait()
appel systémique .Vous ne devriez pas vous inquiéter pour eux. Ils n'occupent aucune ressource, ils disparaîtront également lorsque leur parent fera appel
wait()
à la mort du parent.la source
C'est un processus qui a été complètement désalloué mais qui existe toujours dans la table des processus. Comparez cela à un processus orphelin dont le parent est décédé mais est toujours en cours d'exécution.
Voici quelques conseils pour vous en débarrasser.
la source
Cependant, il existe déjà une réponse acceptée: vous POUVEZ tuer le processus zombie. Attachez avec le débogueur au processus parent et appelez la fonction waitpid. Exemple: - supposons que le parent ait PID = 100, le processus zombie a PID = 200
la source
Un processus zombie ne dispose d'aucune ressource, à l'exception de l'entrée dans l'arbre de processus. Cela se produit lorsqu'un processus est terminé, mais le processus parent ne l'a pas encore exploité (c'est-à-dire
wait
édité dessus).Vous pouvez essayer de forcer le parent à le faire si vous le souhaitez en lui envoyant un SIGCHLD (
kill -20
), mais rien ne garantit que le parent l'honorera.Vous les verrez souvent pendant de courtes périodes (par exemple, lorsque vous affichez l’arborescence de processus à l’aide de top) - c’est normal; Dans la tranche de temps séparant la fin d'un processus enfant et son interrogation par le parent, le processus enfant apparaîtra sous la forme d'un zombie.
Si vous voyez des processus zombies qui existent continuellement - ce qui n'est pas normal - il n'y a toujours pas lieu de s'inquiéter - encore une fois, aucune ressource n'étant allouée à un processus mort - cela signifie généralement que l'application est mal écrite par des développeurs médiocres.
Le seul moment où vous devriez être concerné par les processus zombies est lorsque vous en voyez beaucoup, par exemple, si la même application de merde mentionnée ci-dessus est placée sous charge.
Je travaille dans de très mauvais développeurs. J'ai donc le privilège de gérer de tels problèmes et d'apprendre toutes sortes de choses inutiles en le faisant. En fait, mon équipe a souvent recours à des scripts shell de merde écrits par des développeurs de merde dans des interviews. Si le candidat peut affirmer que le script est vraiment nul et nous expliquer pourquoi c'est merdique, il a un bon pied dans la porte.
la source
En ce qui concerne le fusil de chasse virtuel ...
Et rappelez-vous: toujours leur tirer dans la tête.
la source
Un processus zombie est un processus qui a fini de s'exécuter, mais qui est toujours répertorié dans la table des processus.
kill -9 [nom de processus parent] la posera avec un parti pris extrême.
la source