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