J'utilise une bibliothèque tierce qui démarre divers sous-processus. Quand il y a une exception, j'aimerais tuer tous les processus enfants. Comment puis-je obtenir une liste de pids d'enfants?Comment lister tous les processus enfants en python?
Répondre
Il est généralement plus sûr de consigner les pids de tous vos processus enfants lorsque vous les créez. Il n'y a pas de moyen compatible avec Posix pour lister les PID enfants. Je sais que cela peut être fait avec l'outil PS.
Oui, je m'y attendais. Le problème est que ce n'est pas moi qui crée les processus, c'est la bibliothèque tierce. Tant pis. Ce n'est pas un showstopper. – Rowan
puis-je obtenir un accepter? –
En fait, votre réponse n'est pas la solution. J'ai vraiment besoin de savoir comment je peux obtenir '' psutil.Process'' pour me donner récursif '' memory_info'' et '' cpu_percent'' mais mon appel au sous-processus ouvre réellement un autre sous-processus (au moins 4 ou 5 niveaux) n'ont aucun moyen de garder une trace de tous les PID. – Natim
En utilisant psutil vous pouvez obtenir tous les processus enfants (même processus récursif) regarder https://psutil.readthedocs.io/en/latest/#psutil.Process.children
votre lien produit 404 statut, le vérifier ou le vote a eu lieu ( – dyomas
merci, mettre à jour le lien –
Vous ne pouvez pas toujours vous connecter tous les sous-processus car ils sont créés, car ils peuvent à leur tour créer de nouveaux processus que vous ne sont pas au courant. Cependant, il est assez simple à utiliser psutil pour les trouver:
import psutil
current_process = psutil.Process()
children = current_process.children(recursive=True)
for child in children:
print('Child pid is {}'.format(child.pid))
Je pense que _parent_ et _current_process_ est le même?) – dyomas
Yup, édité pour corriger. Merci @dyomas. –
- 1. Comment puis-je lister tous les processus s'exécutant sous Windows?
- 2. Frai et d'attendre les processus enfants en Python
- 3. Lister tous les fichiers ouverts
- 4. Le processus parent n'attrape pas tous ses processus enfants
- 5. Comment lister tous les imagens sur l'appareil?
- 6. Comment lister tous les contrôles ActiveX?
- 7. Lister tous les modems système
- 8. Lister les processus pour un utilisateur spécifique
- 9. Win32: Comment énumérer les processus enfants?
- 10. Comment puis-je lister tous les fichiers tga dans un répertoire (non récursif) en Python?
- 11. Comment lister tous les processus qui utilisent/accèdent à un pilote de noyau Linux donné
- 12. Suivre les identifiants de processus de sous-processus/enfants?
- 13. Tuer un sous-processus, y compris ses enfants de python
- 14. Comment lister tous les IBindings enregistrés dans Ninject?
- 15. Comment tuer tous les processus asynchrones
- 16. Comment lister tous mes check-ins en utilisant ClearCase?
- 17. Comment lister par programme tous les contrôleurs dans Rails
- 18. Hibernate Search - Comment lister tous les enregistrements par défaut
- 19. Comment lister tous les fichiers modifiés dans un shadow-volume?
- 20. comment lister tous les noms de base de données informix
- 21. Convertir les attributs de tous les nœuds en nœuds enfants
- 22. Récupérer tous les enfants et leurs enfants, SQL
- 23. Comment contrôler le signal SIGTSTP pour les processus enfants?
- 24. Cocher ou décocher tous les enfants TreeViewItem
- 25. Récupérer tous les enfants de parents []
- 26. tous les enfants sélecteur dans jquery?
- 27. Python - piège tous les signaux
- 28. Comment lister toutes les fonctions dans un module Python?
- 29. Attente de tous les processus enfants avant que le parent ne reprenne l'exécution UNIX
- 30. Récupérer tous les cookies en Python
pourrait aider à nous dire votre système d'exploitation, car cela va dépendre la plate-forme –
Est-ce que vous aide Posix? Je suppose que certaines personnes aimeraient connaître la réponse de Windows aussi. – Rowan
Voir: http://stackoverflow.com/a/4229404/376587 –