Los zombies mueren al matar al padre, hasta ahí correcto, pero es una chapuza hacer eso. El proceso hijo queda zombie a la espera que se lea la información que dió al terminar. Para leerla se puede usar waitpid() <sop.upv.es/sso/transparencias/proc/tsld011.htm>, por ejemplo así:
int main(int argc, char **argv) { int status; pid_t PID_Hijo; PID_Hijo=fork(); if(!PID_Hijo) exit(0); else while(1){waitpid(PID_Hijo,&status,WNOHANG);}
return 1; }
Así se quita de la tabla de procesos correctamente.
NOTA: Para terminar haced Ctrl+C
Los zombies mueren al matar al padre, hasta ahí correcto, pero es una chapuza hacer eso. El proceso hijo queda zombie a la espera que se lea la información que dió al terminar. Para leerla se puede usar waitpid() <sop.upv.es/sso/transparencias/proc/tsld011.htm>, por ejemplo así:
int main(int argc, char **argv)
{
int status;
pid_t PID_Hijo;
PID_Hijo=fork();
if(!PID_Hijo) exit(0);
else
while(1){waitpid(PID_Hijo,&status,WNOHANG);}
return 1;
}
Así se quita de la tabla de procesos correctamente.
NOTA: Para terminar haced Ctrl+C