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

Re: Programar tarea diaria con límite de tiempo de ejecución (SOLUCIONADO)




----- Original Message ----- From: "Eduardo A. Bustamante López" <dualbus@gmail.com>
To: "Ismael L. Donis Garcia" <slibre@citricos.co.cu>
Cc: <debian-user-spanish@lists.debian.org>
Sent: Tuesday, April 01, 2014 1:21 PM
Subject: Re: Programar tarea diaria con límite de tiempo de ejecución


On Mon, Mar 31, 2014 at 05:01:08PM -0400, Ismael L. Donis Garcia wrote:
Muchas gracias a todos los que me han respondido.

Me pondré a ver como se hace para ver si logro hacerlo porque la
verdad no tengo la más mínima idea de como hacer un script, pero
bueno miraré de que forma logro hacerlo. Al menos ya me han
comentado por donde enfocar las cosas.

El proceso que voy a lanzar no tiene problemas al ser matado ya que
cuando comienza de nuevo el verifica la ultima operación que realizo
y a partir de ahí comienza con la siguiente. Por lo que solo me hace
falta levantar el proceso a una hora y cerrarlo en caso de que esté
aun abierto a otra hora determinada.

Saludos Reiterados
========
| ISMAEL |
========

No es tan difícil. Solo debes poner 'timeout N' de prefijo al comando
que quieras correr, por ejemplo:

| dualbus@debian:~$ time timeout 5 sleep 10
|
| real  0m5.059s
| user  0m0.000s
| sys 0m0.000s

(el time es para que veas como dura 5 y no 10 segundos).

Entonces, si buscas que tu comando tenga una duración máxima de 8
horas, solo debes hacer:

| timeout 8h tu-comando-aqui parametros...

Muy sencillo.


Lo que *no* recomiendo es que escribas el PID en un archivo y lances
otro proceso para que mate al original a las 8 horas. No sólo es más
complejo, sino que también puedes terminar matando al que no quieres.

Esto se debe a que si tu proceso original a matar termina temprano,
su PID *desaparece* pero después el kernel puede decidir reutilizar
ese mismo PID para otro proceso. Esto puede producir resultados
inesperados y difíciles de reproducir. Por eso mejor usa el comando
'timeout'.


--
Eduardo Alan Bustamante López


1 millón de gracias, lo probé con "timeout 60 copydat parametro1, parametro2" y funcionó perfecto.

copydat es la aplicación que voy a correr la cual hice con Lazarus

Gracias a todos los que me ayudaron. Son cosas que voy cogiendo ya que yo lo que me dedico es a programar.
========
| ISMAEL |
========



Reply to: