Estoy escribiendo un programa python que ejecuta un subproceso (usando Popen). Estoy leyendo la salida estándar del subproceso, haciendo un poco de filtrado y escribiendo al estándar del proceso principal.¿matar el subproceso cuando se mata el proceso de python?
Cuando elimino el proceso principal (cntl-C), el subproceso continúa en ejecución. ¿Cómo puedo matar el subproceso también? El subproceso es similar a ejecutar durante mucho tiempo.
Contexto: Estoy iniciando solo un subproceso a la vez, estoy filtrando su stdout. El usuario puede decidir interrumpir para intentar algo más.
Soy nuevo en python y estoy usando Windows, así que sea amable.
Una advertencia de la documentación de pitón en Popen.wait(): Advertencia Este será un punto muerto si el proceso hijo genera suficiente salida a un tubo de salida estándar o stderr tal que bloquea a la espera para que el búfer de tuberías del sistema operativo acepte más datos. Usa communica() para evitar eso. –
En realidad 'signal.signal (signal.SIGINT, handlerFunc)' funciona bien en Python 2.6.5 (r265: 79096, 19 de marzo de 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] en win32 ; Lo intenté. – RobM