Estoy usando una biblioteca de terceros que inicia varios subprocesos. Cuando hay una excepción, me gustaría matar a todos los procesos secundarios. ¿Cómo puedo obtener una lista de pids infantiles?¿Cómo se enumeran todos los procesos secundarios en python?
Respuesta
Por lo general, es más seguro registrar los datos de todos sus procesos secundarios cuando los crea. No hay una forma compatible con posix para listar PIDs secundarios. Sé que esto se puede hacer con la herramienta PS.
Sí, esperaba eso. El problema es que no soy yo quien crea los procesos, es la biblioteca de terceros. Oh bien. No es sensacional. – Rowan
¿puedo obtener una aceptación? –
En realidad, su respuesta no es la solución. Realmente necesito saber cómo puedo obtener '' psutil.Process'' para darme recursive '' memory_info'' y '' cpu_percent'', pero mi llamada al subproceso realmente abre otro subproceso (al menos 4 o 5 niveles) y yo no tienen forma de mantener un seguimiento de todos los PID. – Natim
Usando psutil puede obtener todos los procesos hijos (aun proceso recursivo) mira https://psutil.readthedocs.io/en/latest/#psutil.Process.children
su enlace produce el estado 404, verifíquelo o se produjo un voto negativo ( – dyomas
gracias, actualice el enlace –
No siempre se puede registrar todos los subprocesos que se crean, ya que pueden a su vez crear nuevos procesos que se no están al tanto Sin embargo, es bastante simple de usar psutil encontrarlos:
import psutil
current_process = psutil.Process()
children = current_process.children(recursive=True)
for child in children:
print('Child pid is {}'.format(child.pid))
Creo que _parent_ y _current_process_ es el mismo?) – dyomas
Sí, editado para corregir. Gracias @dyomas. –
- 1. ¿Cómo encontrar todos los procesos secundarios?
- 2. Esperando en PowerShell para que finalicen todos los procesos secundarios
- 3. desove ya la espera de los procesos secundarios en Python
- 4. cómo matar procesos y procesos secundarios de python?
- 5. ¿Cómo encontrar todos los módulos secundarios en Python?
- 6. Python en Windows: ¿cómo esperar varios procesos secundarios?
- 7. fork() procesos secundarios y secundarios
- 8. HDFS: ¿Cómo se enumeran los archivos recursivamente?
- 9. ¿Cómo se enumeran los identificadores del proceso?
- 10. ¿Cómo desactivo los bloques END en procesos secundarios?
- 11. ¿Cómo se enumeran los archivos en un directorio estático?
- 12. ¿Cómo rastrear todos los archivos abiertos por un proceso y sus procesos secundarios?
- 13. Los procesos secundarios creados con el módulo de multiprocesamiento de python no se imprimirán
- 14. ¿Cómo se enumeran las propiedades de un objeto en Python?
- 15. ¿Cómo se enumeran los miembros del objeto COM en C#?
- 16. enumerando todos los procesos en iOS 5.0.1
- 17. ¿Cómo se enumeran todos los factores desencadenantes en una base de datos MySQL?
- 18. ¿Cómo se enumeran las pestañas en vim?
- 19. Esperando todos los procesos secundarios antes de que el padre reanude la ejecución UNIX
- 20. Cómo calcular la utilización de CPU de un proceso y todos sus procesos secundarios en Linux?
- 21. ¿Cómo se enumeran los modos menores activos en emacs?
- 22. ¿Cómo se enumeran los volúmenes en Mac OS X?
- 23. Hacer que el comando "Esperar" de Linux espere a TODOS los procesos secundarios
- 24. mongo DB - Todos los nodos secundarios
- 25. Tener Supervisord Reiniciar periódicamente procesos secundarios
- 26. ¿Cómo puedo desactivar todos los eventos táctiles en todos los elementos secundarios de un ViewGroup?
- 27. ¿Cómo puedo matar todos los procesos en Mysql "show processlist"?
- 28. ¿Cómo seleccionar todos los nodos raíz o todos los secundarios en VirtualStringTree?
- 29. ¿Cómo me deshago de los procesos secundarios de Java cuando mi aplicación Java se cierra/falla?
- 30. Determinar todos los elementos secundarios ancho
podría ayudar a decirnos su sistema operativo, ya que esto va a ser dependientes de la plataforma –
¿El POSIX ayudarle? Supongo que a algunas personas les gustaría saber la respuesta de Windows también. – Rowan
Ver: http://stackoverflow.com/a/4229404/376587 –