2009-03-01 17 views
11

He escrito una secuencia de comandos que obtiene datos del solr cuya fecha está dentro del período especificado, y ejecuto la secuencia de comandos usando como un cron diario.¿Cómo puedo aumentar el tiempo de espera para un cronjob/crontab?

El problema es que el cronjob no completa la tarea. Si ejecuto manualmente el script (para el mismo período de tiempo), funciona bien. Si reduzco el período de tiempo especificado, la secuencia de comandos también se ejecuta desde el cron. Así que mi suposición es que el cronjob se está agotando mientras se ejecuta el script, ya que hay mucha información por procesar.

¿Cómo puedo aumentar el tiempo de espera para cronjob?

PS - 1. El script que estoy ejecutando en cronjob es un script bash que ejecuta un script python.

Respuesta

5

Puede intentar usar ulimit -t [número de segundos] en el cronjob antes de ejecutar el script.

18

Tenga en cuenta que la solución ulimit -t sugerida limitará la cantidad de tiempo de CPU utilizada, no la cantidad de tiempo real que ha pasado.

Desde la página de manual bash:

ulimit [-HSTabcdefilmnpqrstuvx [limit]] 
... 
-t  The maximum amount of cpu time in seconds 

Y lo más importante, cron no impone ninguna interrupción en el primer lugar. Simplemente inicia cualquier proceso y continúa.


BTW: Perdón por publicar esto como respuesta, pero aún no tengo suficientes puntos para agregar comentarios.

Cuestiones relacionadas