Re: CGI Perl se queda esperando rta el browse
> Buenas lista, tengo un problema con un script. Estoy trabajando en un
> CGI sobre un apache.
> Este CGI en Perl entre otras cosas lista cuanto pesa cada home de cada
> usuario, ese texto lo guardo en un archivo y luego lo leo mas adelante
> para mostrarlo por pantalla...
>
> open(OUTF,">/tmp/homes.log");
> print OUTF `du -h --max-depth=1 /home`;
> close(OUTF);
>
> Cuando pruebo el CGI desde el bash anda a la perfeccion, pero al
> ejecutarlo como CGI desde un navegador se queda colgado esperando
> respuesta y viendo los procesos me muestra esto:
> # ps ax
>
> 12960 ? S 0:00 du -h --max-depth=1 /home
>
> lo cual debo matarlo manualmente para que finalize de una vez por todas
>
> alguien podria darme una pista?
> No creo que sea problema de codigo o permisos ya que si ACOTO el
> directorio a "pesar" ej: /home/<un_usuario> me funciona perfecto incluso
> como CGI. Pero el problema surge al abarcar todo el directorio /home
>
> Si creen que es mas para la lista "lugfi" lo posteo ahi...
>
> saludos y gracias
>
>
> _______________________________________________
> Lista de correo Programacion.
> Programacion@listas.fi.uba.ar
> http://listas.fi.uba.ar/mailman/listinfo/programacion
>
>
> --
> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmaster@lists.debian.org
>
>
Debes tener en cuenta quien ejecuta el script, por regla general es el
usuario www-data y debe tener permisos de escritura y lectura en la capeta
tmp. Puedes comprobar si es ese el problema lanzando el script pero sin la
necesidad de escribir en el disco el resultado:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n<BODY BGCOLOR=\"#FFFFFF\">\n\n";
print "<h1 align='center'>espacio disponible</h1>\n";
print "<p><b>".`du -h --max-depth=1 /home`."</p>\n";
print "</BODY>\n";
print "</HTML>";
Yo he probado ese código en mi máquina y funciona a la perfección y con
ello me refiero a que finaliza correctamente.
Un Saludo.
Reply to: