procesos en background
Marcelo E. Magallon
marcelo.magallon en gmail.com
Jue Abr 27 19:27:19 PDT 2006
On Tue, Apr 25, 2006 at 09:32:02PM -0600, Sergio Vargas Ramirez wrote:
> system "phylip ... &";
>
> como el programa corre en el background, la aplicacion perl regresa
> aun cuando phylip no ha finalizado y se muere pues no tiene ningun
> archivo de resultados para analizar.
Lo que no entiendo es porque phylip tiene que correr como proceso en el
background.
Sospecho que el punto es que phylip es un programa interactivo en el
que se realiza algún tipo de operación y eso quiere decir que "de
pronto" aparece un archivo con el resultado.
Eso se puede resolver de varias formas:
* Haciendo polling del archivo:
while (! -e "archivo")
{
sleep 1;
}
Esto por supuesto come CPU. No mucho, pues la pausa es larga (1
segundo), pero come CPU. El programa se continuará ejecutando en el
momento que el archivo aparezca. Nótese que esto supone que phylip
escribe los archivos en forma atómica, es decir, si el archivo
aparece, está listo, no está siendo escrito y por tanto con
contenidos incompletos.
* Pidiéndole al usuario que presione una tecla para continuar:
print "Cuando el archivo de datos esté listo presione [ENTER]";
getc;
> Si alguien esta interesado en conocer un poco mas sobre el asunto
> puede escribirme a esta direccion.
Pues suena interesante.
Marcelo
Más información sobre la lista de distribución Costarica-pm