Você tem alternativas para sleep
: elas são at
e cron
. Ao contrário de sleep
, é necessário que você forneça o horário no qual você precisa que eles sejam executados.
-
Verifique se o serviço
atd
está em execução executandoservice atd status
.
Agora vamos dizer que a data é 11:17 da manhã UTC; se você precisar executar um comando às 11:25 UTC, a sintaxe será:echo "This is a test" | at 11:25
.
Agora lembre-se de queatd
por padrão não registrará a conclusão dos trabalhos. Para saber mais, consulte este link . É melhor que seu aplicativo tenha seu próprio log. -
Você pode agendar trabalhos em
cron
, para mais referências:man cron
para ver suas opções oucrontab -e
para adicionar novos trabalhos./var/log/cron
pode ser verificado para obter informações sobre a execução de tarefas.
FYI sleep system call
suspende a execução atual e agenda-a o argumento passou para ele.
EDITAR:
Como mencionado por @Gaius, você também pode adicionar minutos ao comando at
. Mas vamos dizer que o tempo é 12:30:30
e agora você executou o agendador com now +1 minutes
. Mesmo que 1 minuto, o que significa que 60 segundos foram especificados, o at
realmente não espera até que 12:31:30
execute o trabalho, em vez disso, ele executa o trabalho em 12:31:00
. As unidades de tempo podem ser minutes, hours, days, or weeks
. Para mais informações, consulte man at
por exemplo: echo "ls" | at now +1 minutes