OT: Subproceso hijo con modperl

NYARLATHOTEP El Caos Reptante nyarlathotep.elcaosreptante en gmail.com
Jue Nov 10 13:03:38 CLST 2005


Hola Lista...

He estado leyendo e informandome sobre como realizar un proceso hijo
llamado desde apache con mod_perl; bueno, la situacion actual es la siguiente:

1 Tengo un *.pm que se encarga de mostrar y generar la pagina, el cual
posee una subrutina que crea el proceso hijo
2 Tengo un script (llamado generador_archivos.pl con permisos 755
)que al ejecutarlo desde la bash funciona perfectamente,
utilizando y manipulando la base de datos y que a la vez escribe en un
archivo.

la subrutima del *.pm que crea el proceso hijo es la siguiente:

sub generar_info {

my $self = shift;
my $arg = "ACT" if param("ACT");
$arg = "CHB" if param("CHB");
$arg = "CHL" if param("CHL");
$arg = "INTER" if param("INTER");
$arg = "REENV" if param("REENV");
$arg = "REINT" if param("REINT");

warn "Generando INFO\n";
warn "Ejecutando /desa/my_site/bin/generador_archivos.pl $arg \n";

use strict;
use POSIX 'setsid';
use Apache::SubProcess;

my $r = Apache->request;

$SIG{CHLD} = 'IGNORE';
defined (my $kid = fork) or die "Cannot fork: $!\n";
if ($kid == 0) {

   warn "Preparando proceso hijo!\n";

   $r->cleanup_for_exec(); # untie the socket

   chdir '/' or die "Can't chdir to /: $!";
   open STDIN, '/dev/null/' or die "Can't read /dev/null: $!";
   open STDOUT, '>/dev/null' or die "Can't write /dev/null: $!";
   open STDERR, '>/tmp/log' or die "Can't write /dev/null: $!";
   setsid or die "Can't start a new session: $!";

   select STDERR;
   local $| = 1;

   #ejecutar script externo

   system "/desa/my_site/bin/generador_archivos.pl $arg" or die
"Ups! $!";

}
}

Pero que al momento de llamar al script generador_archivos.pl no sucede nada...

¿Alguna idea?

Gracias
--
No trate nunca de verificar una condición de error que no sepa manejar.



Más información sobre la lista de distribución Linux