Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/08/2008, 17:08
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Señales en Linux

Hola,

Cita:
Iniciado por anterma Ver Mensaje
... Aunque no entiendo muy bien lo que hace el código, ...
Que parte ?

Cita:
Iniciado por anterma Ver Mensaje
... ¿cuando muere el padre también muere el hijo? ...
En este ejemplo .. sí, pero es un poco confuso, el hijo espera con pause() que el padre le avise cuando terminar, el padre le envia un mensaje con kill() al hijo que deber terminarse, cuando muere el hijo por que el padre le avisó que se muriera (el hijo salio del pause), el padre espera con wait() hasta que se termine el hijo. Pero eso lo decides en la forma como diseñes la aplicación.

Revisa la documentación de pause(), wait(), kill() y signal().

En este ejemplo no era necesaria la funcion signal(SIGUSR1, def_handler) para que funcionara todo el proceso, pero te muestra como capturar la señal SIGUSR1.

Cuando muere el hijo pues es normal, pero cuando muere el padre y el hijo sigue corriendo, pasa a ser un huérfano y es adoptado por el proceso init #1. O cuando muere el padre y el hijo ya terminó su función (no está corriendo) pero nunca fué llamada la función wait, pasa a ser un zombie y el proceso init se encarga de darle sepultura (elimina el resultado de la tabla de procesos con una llamada parecida a wait lo antes posible).

Saludos,

ps:

... perdón por las analogías con la defunción, pero ... así ha estado escrita la documentación original.

Última edición por HackmanC; 20/08/2008 a las 17:50 Razón: ji,ji .. que tetrico ... :-)