Question

J'ai un processus défunt sur mon système:

abc      22093 19508  0 23:29 pts/4    00:00:00 grep ProcA
abc      31756     1  0 Dec08 ?        00:00:00 [ProcA_my_collect] <defunct>

Comment puis-je tuer le processus ci-dessus, sans un redémarrage de la machine? J'ai essayé avec

kill -9 31756
sudo kill -9 31756
Était-ce utile?

La solution

Vous avez tué le processus, mais un processus mort ne disparaît pas de la table de processus jusqu'à ce que son processus parent effectue une tâche appelée « récolte » (essentiellement appeler pour ce processus wait(3) à lire son état de sortie). processus morts qui n'ont pas été engrangés sont appelés « les processus zombie . »

L'identifiant du processus parent que vous voyez pour 31756 est l'ID de processus 1, qui appartient toujours à init. Ce processus devrait récolter ses processus zombie périodiquement, mais si elle ne peut pas, ils resteront zombies dans la table de processus jusqu'à ce que vous redémarrez.

Autres conseils

Avez-vous vérifié un processus enfant qui peut avoir besoin d'être tué en premier? Parfois, la mise en confiture est la ligne ... Essayez ps -ef --forest

pour voir ce qui peut être en dessous (le cas échéant) tuer alors que d'abord, puis celui que vous connaissez déjà

Si kill -9 ne parvient pas à tuer un processus, la cause est presque toujours un bug système pilote ou d'exploitation.

Le processus d'initialisation a adopté le processus, mais il ne peut pas moissonner. C'est-à-dire: quand initialisation appelle attente (2) ce processus n'est pas retourné. L'un des principaux objectifs de init est de récolter des enfants orphelins morts, de sorte que le problème n'est pas que son parent est mort avant qu'il ne soit moissonnée. Pensez: Sinon, qui moissonne les résultats d'un processus nohup'd après la déconnexion

Tuer les enfants du processus défunt est peu susceptible d'aider à moins qu'ils ne soient en quelque sorte liés au bogue particulier que vous voyez.

Vous allez probablement pas être en mesure de se tuer le parent ne résout pas. Quelle qu'en soit la raison, les systèmes ne collecte pas ce processus zombie.

FWIW, je l'ai vu un peu sur les SCO Openserver boxen que j'ai utilisé pour administrer. l'utilisation multi-utilisateurs lourd et peu de ressources système, mais il ne semble pas faire du mal à quoi que ce soit. Juste m'a ennuyé. :)

Le processus se bloque, par exemple dans probablement ignorant des signaux comme SIGPIPE, vérifier avec ce qui se passe strace -p <pid> ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top