En python, en utilisant twistedcallingcall, multiprocessing.Process et multiprocessing.Queue; est-il possible de créer un processus zombie. Et, si oui, alors comment?Comment twisted et multiprocessing.Process créent des zombies?
Répondre
Un zombie est un processus qui s'est terminé mais dont l'achèvement n'a pas encore été remarqué par le processus qui l'a démarré. C'est la responsabilité du processus Twisted de récolter ses enfants.
Si vous démarrez le processus avec spawnProcess
, tout devrait toujours fonctionner comme prévu. Cependant, comme décrit dans bug #733 in Twisted (qui a été corrigé depuis longtemps), il existe une pléthore de casse-bords désagréables lorsque vous voulez utiliser Twisted avec d'autres fonctions qui génèrent des processus, car l'API Python rendait difficile la coopération entre les gestionnaires de signaux.
Tout cela est corrigé dans les versions récentes du code, mais je crois que vous pouvez encore rencontrer ce bogue dans les conditions suivantes:
- Vous utilisez une version de Twisted plus tôt que 10,1.
- Vous utilisez une version de Python antérieure à 2.6.
- Vous ne construisez pas les modules d'extension natifs de Twisted (si vous travaillez à partir d'une extraction de développement ou d'une archive tar non compressée plutôt que d'une version installée, vous pouvez corriger cela avec
python setup.py build_ext -i
). Vous utilisez un module tel quepopen
ousubprocess
.
mise à niveau ou un peu de chance Twisted exécutant la commande appropriée corrigera votre problème immédiat, mais vous devriez toujours envisager d'utiliser spawnProcess
, depuis que vous permet de traiter la sortie de processus comme un événement normal dans la boucle d'événements du réacteur.
- 1. Comment jmock et mockito créent des wrappers?
- 2. code génétique et zombies!
- 3. ZMQ et Twisted
- 4. Enregistrement du plugin Twisted
- 5. Fourche, partage de variables et gestion des processus zombies
- 6. Débarrassez-vous des processus de zombies
- 7. Python Twisted proxy - comment intercepter des paquets
- 8. Problème avec Twisted et threads
- 9. Twisted: désactive la journalisation des classes Twisted-framework
- 10. Rails pour Zombies - Labs
- 11. UITableViewController Zombies On Scroll
- 12. XCode - iPhone SDK Zombies
- 13. Interaction des serveurs avec Twisted?
- 14. Threads, subprocess & zombies
- 15. Les fenêtres PHP créent des fichiers cachés
- 16. UNIX Zombies and Daemons
- 17. Python - Twisted et PyAudio + Chat
- 18. Plusieurs applications Grails créent des conflits Ehcache
- 19. Linux: Comment trouver la liste des processus démon et des processus zombies
- 20. réacteur twisted: priorité et perspectives
- 21. Python Twisted: twisted conque filetransfer verifyHostKey
- 22. société et utilisateur créent sous une forme
- 23. Multiprocesseur Python avec le réacteur twisted
- 24. Les fusions rapides créent des noeuds dupliqués
- 25. Comment utiliser Jinja avec Twisted?
- 26. Proguard et mapping.txt ne créent pas
- 27. rails créent my_app
- 28. Comment les fermetures créent-elles des fuites de mémoire?
- 29. Comment plusieurs compilateurs OpenMP créent-ils des threads?
- 30. Comment unifier des méthodes de test qui créent et lisent des fichiers
+1 pour la récolte d'enfants – Jason