¿Los trabajos cron de Linux se ejecutan secuencialmente o en paralelo?

10

Digamos que creo dos trabajos cron:

  • Cron Job A, corre todos los días a las 8:00 a.m.
  • Cron Job B, corre todos los días a las 8:05 a.m.

Sin embargo, Cron Job A, tarda 12 horas en ejecutarse (no pregunte por qué, este es un ejemplo).

¿Se ejecutará Cron Job B a las 8:05 a.m. o los trabajos cron solo se ejecutarán uno a la vez?

Si un Cron Job que se estaba ejecutando anteriormente fue interrumpido por un reinicio / reinicio del sistema, ¿se reanudará / ejecutará nuevamente después del arranque posterior?

Adam B
fuente
2
La primera parte de esto es tan fácil de probar que me sorprende que no lo hayas hecho.
user9517
1
Las pruebas son una cosa, pero estoy tratando de obtener información sobre el núcleo de cómo funciona cron. Sí, probablemente pueda navegar a través de la fuente cron, pero eso tomaría más tiempo. Por ejemplo, me gustaría saber si cada trabajo cron se genera como un nuevo proceso, que, según tengo entendido, es. Y también, si existe un límite de ejecución simultánea de trabajos cron, que en realidad también parece estar basado en la implementación.
Adam B

Respuestas:

11

Sí, el trabajo cron B se ejecutará a las 8:05. También puede ejecutar más de un trabajo de larga duración a las 8:00, etc.

Sin embargo, el trabajo no se reanudará después de un reinicio. Si necesita algo así, reescriba su trabajo con un contenedor que se programe con frecuencia y que verifique si tiene algo nuevo que hacer o algo más que continuar. Esto dependerá de la tarea que desee hacer, obviamente.

Sven
fuente
Si todo se redujera a eso, entonces probablemente cambiaría a un Daemon. Veo que en términos de reinicios / cortes de energía, etc., Daemon podría ser más robusto.
Adam B
2
@ AdamB: Hay muchas tareas para las que cron no es adecuado. Como siempre, elija la herramienta adecuada para su tarea. Por ejemplo, podría valer la pena investigar anacron.
Sven
5

Se ejecutan en paralelo. Cron Job B se ejecutará a las 8:05 am.

Brian Minton
fuente
1

Todos y cada cron en su sistema están aislados unos de otros, pero el tiempo de ejecución del trabajo cron dependerá únicamente de la asignación de recursos del sistema y del trabajo para el que Cron ha sido programado.

Abhishek Anand Amralkar
fuente
Lo hará? Creo que también podría depender de lo que esté haciendo el cronjob, de qué datos de entrada o para qué, y varios otros factores.
Falcon Momot