martes, 4 de marzo de 2008

Caminando en silencio

He estado demasiado callado estos días, y es que lo poco que avanzo no es visible. Sigo desarrollando la aplicación Nxt Viewer y ahora estoy bastante atascado, los problemas vienen a la hora de detener los procesos 'hijo' ejecutados (los módulos) ,no consigo capturar la señal SIGCHLD para que tengan una muerte limpia (y hayá donde vayan tengan una feliz estancia). Así que estoy pensando en dejarlos en estado zombie por el resto de los tiempos... algo que atenta contra todo lo aprendido en sistemas operativos (y la ética)


Por si alguien ve algo que yo no consigo ver, os comento la situación:

La aplicación permite ejecutar otros programas, y cuando estos mueren, las buenas formas dicen que el proceso padre (en este caso mi aplicación) debe recoger los restos de su hijo para que este tenga un funeral digno. Para esto, el sistema operativo me envía la señal SIGCHLD ante el fallecimiento de un proceso hijo. Para capturarla python me proporciona la función signal(signal, manejador). Hasta aquí todo bien, pero... cuando se lanza esta señal por parte del sistema operativo lo que capturo es una SIGINT, y a pesar de ignorarla o asociarla a funciones de tratamiento absurdas, siempre mata a la aplicación (tratamiento por defecto).

¿Alguna sugerencia?

No hay comentarios: