2011-09-26 18 views
5

desde la página man de crontab.¿Qué sucede con las tareas cron cuando el sistema se apaga?

 string   meaning 
     ------   ------- 
     @daily   Run once a day, "0 0 * * *". 
     @midnight  (same as @daily) 

¿Entonces un trabajo @daily nunca se ejecutará si el sistema está siempre apagado a medianoche? ¿Cuál es la forma correcta de especificar que quiero ejecutar este trabajo una vez al día, pero no me importa cuándo se ejecuta exactamente en un día?

+4

dup de http://serverfault.com/questions/52335/job-scheduling-using- crontab-what-will-happen-when-computer-is-shutdown-during-t – jman

+1

Los servidores no están destinados a apagarse durante la noche ... ¿por qué no mantenerlo en línea y apagarlo una vez por semana? ¿O al menos cambiar el trabajo cron para que se ejecute antes? –

Respuesta

2

Es posible que el trabajo se ejecute, pero probablemente no se complete. cron se implementa a través de un daemon, por lo que siempre se está ejecutando. Dependiendo de la orden de cierre de su sistema, es posible que a cron se le envíe la señal de apagado bastante tarde en el proceso de apagado, por lo que los trabajos programados para el momento en que se inició el apagado pueden seguir ejecutándose.

p. Ej. Si el apagado comienza a las 00:00:00 exactamente, pero no llega a enviar cron una señal de finalización hasta 00:00:05 (5 segundos después de la medianoche (entonces, un trabajo de 2 segundos con poca ejecución puede tener tiempo para completar)

Sin embargo, si algún servicio del que depende el trabajo ya se ha apagado o está en proceso de cierre, entonces es poco probable que pueda finalizar, por ejemplo ... el script hace ping a un servidor mysql por una pequeña pieza de datos ... pero mysql se cerró a las 00:00:01 y su script no llegó a la parte mysql hasta 00:00:02.

tl; dr: es una condición de carrera y su trabajo PUEDE ejecutarse , pero probablemente no lo hará.

+1

+1 señor, ¡buena respuesta! – chown

Cuestiones relacionadas