Foros del Web » Administración de Sistemas » Unix / Linux »

Porceso background y c shell

Estas en el tema de Porceso background y c shell en el foro de Unix / Linux en Foros del Web. Hola, Estoy haciendo unos scripts csh y me asaltó una duda. Tengo un foreach que me repite un comando varias veces. PERO, este comando tarda ...
  #1 (permalink)  
Antiguo 09/06/2009, 05:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 143
Antigüedad: 15 años, 8 meses
Puntos: 1
Porceso background y c shell

Hola,

Estoy haciendo unos scripts csh y me asaltó una duda.

Tengo un foreach que me repite un comando varias veces. PERO, este comando tarda unos 5 segundos en calcular la salida, es decir, que:

primera ejecución del comando
pasan 5 segundos
obtenida salida del primer comando

segunda ejecucion del comando
pasan 5 segundos
obtenida respuesta del segundo comando

...
...
...


Justo al terminar el bucle, que ya he colocado la información recibida en una base de datos, quiero ejecutar otra instrucción que me usará la información obtenida anteriormente para realizar nuevos cálculos.

La duda es, ahora mismo el comando se ejecuta, se espera lo que haga falta, y después continúa...

Me gustaría hacer que la instrucción que se va repitiendo en el bucle lo haga en background (&) de manera que no se parase cada vez en el bucle sinó que el bucle no tubiera esperas:

lanzará el comando y continuara ejecutándose, lanzando de nuevo los comandos... y internamente, que se fueran calculando.

El problema es... Si después, mi script va a usar esa información, como puede saber cuando ya ha terminado de calcularlo?

Es decir, puedo lanzar en background todas las comandas que salgan del bucle pero al terminar el bucle, si no han pasado 5 segundos, lo que viene después no tendrá sentido. Como podría hacer para lanzar esos comandos en background y que después del bucle detectara cuando ha terminado y por tanto, puedo seguir?

Es muy tonto esto? Es simplemente una duda, tampoco es esencial... Pero ahora me asaltó la duda.

Gracias!

SAmy
  #2 (permalink)  
Antiguo 10/06/2009, 06:14
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Respuesta: Porceso background y c shell

La variable $! toma el valor del PID del último proceso lanzado en background.
Se me ocurre que podrías guardar esos PIDs en algún lugar para luego chequear si aún están activos. Cuando no quede ninguno, sigues con tu script con lo que tenga que hacer luego de eso.

Saludos
__________________
¡Volviendo a la programación!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:32.