Use o bando .
flock -n /path/to/lockfile -c "command_you_want_to_run"
Eu quero rodar um cron a cada 5 minutos, mas eu não quero que o próximo cron seja executado se o anterior ainda não tiver terminado.
O que pode ser feito sobre isso? Existe alguma ferramenta para apoiar isso?
Obrigado
Use o bando .
flock -n /path/to/lockfile -c "command_you_want_to_run"
Você pode usar o comando run-one. Cria automaticamente um arquivo de bloqueio para o comando que está sendo executado.
run-one rsync -a mirror.kernel.org::everything /my/hd
O comportamento é semelhante ao floco, mas a sintaxe é mais clara. A desvantagem é que você pode precisar instalar o comando para usá-lo. Além disso, deve-se prestar atenção especial ao modificar a linha de comando, quando a linha de comando é alterada, assim como o nome do arquivo de bloqueio
O Cron não suporta nenhum tipo de dependência de trabalho. As entradas que você coloca lá são executadas quando especificadas.
Você terá que fazer um esquema de intertravamento simples. Colocar o comando ou conjunto de comandos fornecido em um script de wrapper contendo o esquema de bloqueio.
Ou, como sites maiores, instale algum tipo de aplicativo de agendamento de trabalho e use-o para executar os aplicativos com condições.