Cada tarefa do cron do Linux é executada sequencialmente ou em paralelo?

10

Digamos que eu crie dois trabalhos cron:

  • Cron Job A, é executado todos os dias às 8:00
  • Cron Job B, funciona todos os dias às 8:05.

No entanto, o Trabalho Cron A leva 12 horas para ser executado (não pergunte por que, este é um exemplo).

O Cron Job B será executado às 8:05 ou os trabalhos cron serão executados apenas um de cada vez?

Se um trabalho Cron que estava sendo executado anteriormente foi interrompido por uma reinicialização / reinicialização do sistema, ele continuará / será executado novamente após a inicialização subseqüente?

Adam B
fonte
2
A primeira parte disso é tão fácil de testar. Estou surpreso que você não tenha.
user9517
1
Testar é uma coisa, mas estou tentando obter informações básicas sobre como o cron funciona. Sim, provavelmente posso navegar pela fonte cron, mas isso levaria mais tempo. Por exemplo, eu gostaria de saber se cada trabalho cron é gerado como um novo processo, o que, pelo meu entendimento, é. E também, se existe um limite de execução simultânea de tarefas cron, que na verdade também parece basear-se na implementação.
Adam B

Respostas:

11

Sim, o trabalho cron B será executado às 8:05. Você também pode executar mais de um trabalho de longa duração às 8:00, etc.

No entanto, o trabalho não será retomado após uma reinicialização. Se você precisar de algo assim, reescreva seu trabalho com um invólucro agendado com frequência e verifique se há algo novo para fazer ou algo para continuar. Isso dependerá da tarefa que você deseja executar, obviamente.

Sven
fonte
Se isso acontecesse, provavelmente eu mudaria para um Daemon. Vejo que, em termos de reinicializações / falta de energia, etc., o Daemon pode ser mais robusto.
Adam B
2
@ AdamB: Existem muitas tarefas para as quais o cron não é adequado. Como sempre, escolha a ferramenta apropriada para sua tarefa. Por exemplo, pode valer a pena investigar anacron.
Sven
5

Eles são executados em paralelo. Cron Job B será executado às 8:05.

Brian Minton
fonte
1

Cada cron no seu sistema é isolado um do outro, mas o tempo de execução da tarefa cron depende apenas da Alocação de Recursos do Sistema e do trabalho para o qual o Cron foi agendado.

Abhishek Anand Amralkar
fonte
Vai? Eu acho que também pode depender do que o cronjob está fazendo, de quais dados de entrada ou com o que e vários outros fatores.
Falcon Momot 13/09/13