Bem, basicamente, suas opções (dos meus próprios casos de uso) são:
- Use
sleep(1)
para coisas que precisem de precisão de segundo ou segundo, geradas pelo script enohup(1)
'd. - Use o comando
at(1)
para planejar a execução com o at-daemon (precisa de uma execuçãoatd
)
A opção 1 pode usar tempos relativos e funciona em qualquer unix, isso é sleep-script.sh
:
#!/bin/sh
sleep "$@"
## dostuff
echo "DONE"
do seu script:
...
nohup sleep-script.sh 1m 19s &
...
A opção 2 precisa de um atd
em execução (e suporta tempos absolutos), no script que você colocaria:
...
at 09:45 tomorrow <<EOF
## stuff i need done
echo "DONE"
EOF
...
A opção 2 é mais confortável porque você pode usar atq
e atrm
para ver a fila de comandos ou remover trabalhos específicos da fila, respectivamente. Mas não suporta precisão sub-minuto com a sintaxe acima.