[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash script para temporizador



El día 25 de enero de 2015, 11:26, Josu Lazkano
<josu.lazkano@gmail.com> escribió:
> Gracias por vuestras respuestas,
>
> Tengo esto: http://paste.debian.net/142181/
>
> Basicamente lo que hace es:
>
> Comprobar si existe el fichero con la hora de apagado.
>    - Si no existe, guarda un fichero con la hora de apagado y hace un
> sleep de 30 minutos.
>    - Si existe comprueba si la diferencia es de 90 minutos.
>       - Si la diferencia es mayor que 90 minutos se elimina el fichero
> y se cancela el sleep.
>       - Si la diferencia es menor que 90 minutos, actualiza el fichero
> en 30 minutos mas y se ejecuta el sleep con la nueva hora.
>
> Lo que no se como hacer es que cuando ya existe un proceso en marcha
> con un sleep de 30 minutos, como poder matar ese procceso para poder
> seguir haciendo el sleep en el proceso actual.
>
> Lo de "trap" nunca lo habia visto, he estado leyendo pero no me he
> enterado de mucho.
>
> Agradezco cualquier ayuda.
>
> Saludos a todos.
>
>
> --
> Josu Lazkano
>

Hola.

Yo lo haría utilizando los comandos "at" y "atrm"

con at programas una tarea para una hora determinada (man at y mira
las opciones de tiempo "now + xxx")

at te devuelve por el estándar error  algo como esto:

  warning: commands will be executed using /bin/sh
  job 104 at Sun Jan 25 18:30:00 2015

Lo que necesitas es el numero del job, "104"  esto lo puedes obtener
al programar la orden con algo como:

echo "comando que quieras programar" | at now +30 minutes |&  grep job
| awk '{print $2}'

Luego con ese número puedes usar atrm para eliminar el trabajo si lo
vas a borrar o reprogramar.

"At" manda correos cuando tiene problemas, mira bien el man del "at".

S2.


Reply to: