5 votes

Comment un processus zombie peut-il détenir des ressources système comme un port TCP ?

Comment mon processus zombie (PID 5693 dans l'exemple) peut-il contenir des ressources comme un port TCP (port 21050 dans l'exemple, mais dans mon cas réel il contient beaucoup plus, comme pty et d'autres descripteurs de fichiers) ? Et comment puis-je libérer le port TCP sans redémarrage ? Je ne comprends même pas comment un processus peut être dans un tel état (je veux dire, être un zombie ET toujours détenir des ressources).

[root@mycomputer ~]# ps -fe | grep 5693
user      5693     1   0 Apr03 ?        00:01:12 [myproc] <defunct>
user      5835  5693   0 Apr03 ?        00:00:00 [mysubproc] <defunct>
root      58888 58050  0 17:39 pts/1    00:00:00 grep 5693
[root@mycomputer ~]# lsof | grep  21050
Systemtas 5693        user   15u     IPv4            3853742       0t0        TCP *:21050 (LISTEN)
[root@mycomputer ~]#

2voto

harrymc Points 394411

A Le processus des zombies est une entrée fictive dans la table des processus du système, attendant seulement que son processus parent demande et reçoive la nouvelle de sa disparition. Il ne peut que retenir brièvement les ressources jusqu'à ce que le système finisse de les libérer toutes.

Cependant, il y a un problème avec TCP : Cela peut prendre quelques minutes pendant lesquelles pendant lesquelles le port TCP est maintenu en vie pour que le processus à l'autre bout puisse de recevoir éventuellement les dernières données envoyées par le processus défunt.

Ce temps d'attente est généralement un paramètre modifiable dans le système d'exploitation.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X