Eu encontrei o problema. Ao escrever para o Crontab, eu estava usando a quebra de linha incorretamente e, devido a isso, no final da entrada, um ^ M foi gravado.
Estou gravando entradas no crontab usando PHP ( www-data
user). A primeira entrada é um agendador que é executado a cada minuto. Se o agendador encontrar um critério específico, ele adicionará uma nova entrada ao crontab. Depois de adicionar uma entrada, o agendador (que deve ser executado a cada minuto) pára de funcionar. As tarefas do cron não estão sendo executadas em paralelo. É como se o usuário www-data
pudesse executar apenas um único trabalho cron.
Meu agendador, que funciona quando é a única coisa no crontab:
* * * * * curl --silent http://myapi_url/scheduler >/dev/null 2>&1
Quando o agendador é executado, ele adiciona uma nova entrada:
18-59/2 * * * * curl --silent http://myapi_url/user/10 >/dev/null2>&1'
Portanto, a nova entrada funciona, mas o agendador pára de funcionar. Se eu adicionar mais uma nova entrada, os dois adicionados anteriormente param de funcionar, mas não o novo. Por quê?
EDITAR:
O crontab tem esta aparência:
* * * * * curl --silent http://myapi_url/scheduler >/dev/null 2>&1
18-59/2 * * * * curl --silent http://myapi_url/user/10 >/dev/null 2>&1
cada nova entrada vem abaixo.
Eu encontrei o problema. Ao escrever para o Crontab, eu estava usando a quebra de linha incorretamente e, devido a isso, no final da entrada, um ^ M foi gravado.