Fork() inmortal en Perl
Luis Rodrigo Gallardo Cruz
rodrigo en lisa.dyndns.org
Sab Ene 8 00:29:53 CST 2000
Yo tuve un problema parecido con Python. Lo que pasaba era que no estaba
cerrando los descriptores de archivos correctos. ¿Por qué no revisas eso?
On Wed, 5 Jan 2000, Gunnar Wolf wrote:
> Estoy trabajando con un problema que espero me puedan ayudar a resolver:
> Recientemente, añadi a mi proyectito (wpm) el poder atender mas de una
> peticion simultanea, por medio de un fork() cada que recibe una conexion.
> Obviamente, el proceso padre cierra la conexion y sigue esperando,
> mientras que el proceso hijo atiende a dicha conexion y, al terminar esta,
> muere. Sin embargo, el proceso queda como zombie, y nunca muere. No se si
> haga falta implementar un codigo de limpieza en el padre, ni como hacerlo.
>
> El pedazo de codigo relevante es:
>
> while ($client = $server->accept()) {
> die "Can't fork!: $@" if (!defined ($child=fork()));
> if ($child == 0) {
> # We are the child process after a fork. We
> # continue doing our stuff...
> (...)
> while ($string=<$client>) {
> (...)
> }
> close $client;
> exit 0;
> } else {
> # After the fork, we are the parent
> # process, so we close the socket and
> # leave it just for the child. We can
> # now go back to answer additional queries.
> close $client;
> }
> }
>
> A alguien se le ocurre lo que puede estar pasando?
>
> -------------------------------------------------------------------
> Gunnar Wolf gwolf en asc.unam.mx
> Universidad Nacional Autónoma de México, Campus Iztacala
> Jefatura de Sección de Admon. de Sistemas y Telecomunicaciones
> Area de Seguridad en Computo - DCI - DGSCA - UNAM
> -------------------------------------------------------------------
>
>
> --
> Para desuscribirse, mande correo a: ayuda-unsubscribe en linux.org.mx
> Para comandos adicionales, envíelo a: ayuda-help en linux.org.mx
>
Luis Rodrigo Gallardo Cruz
-----BEGIN GEEK CODE BLOCK-----
GM/CS d- s-: a-- C++ UL+>++ P L++>+++ E W+ ?o K- !w
?V PS+ PE- Y+ t+@ ?5 X(+) R+ tv b++ D+ G e+>++ h! r++ y+
------END GEEK CODE BLOCK------
--
Para desuscribirse, mande correo a: ayuda-unsubscribe en linux.org.mx
Para comandos adicionales, envíelo a: ayuda-help en linux.org.mx
Más información sobre la lista de distribución Ayuda