Fiz um script simples que executava um comando a cada minuto:
#!/usr/bin/env sh
while true; do
exec "$@"
sleep 60
done
A ideia é torná-lo um ponto de entrada do Docker que me permita executar o agendador do Laravel. Mas antes de construir a imagem pensei em fazer um teste:
$ ./entrypoint/entrypoint_cron.sh echo "Hello"
Hello
Mas o comando é executado apenas uma vez. Por que? E como posso fazer com que o comando fornecido no argumento seja executado em um loop contínuo até que eu o termine com Ctrl+ C?
O
exec
comando substitui o processo atual pelo novo. Uma execução bem-sucedida significa que não há mais nada para continuar o script.POSIX (a documentação para
sh
, veja tambémman sh
) escreve assim ,Talvez você quis dizer isso?