A maneira mais simples, mas não elegante, de fazer isso é escrever um pequeno monitor de processo.
Digamos que seu monitor tenha o nome monitor.sh
, escreva isso dentro dele:
#!/bin/bash
# Runs your runme.sh in background
/location/of/your/runme.sh &
# Gets the PID of runme.sh
RUN_ME_PID=$!
# Sleeps how much time you need:
sleep 8h
# Kills the process:
kill -9 $RUN_ME_PID
Como é um trabalho agendado, use cron
para iniciá-lo para você:
Anexe isso no final de /etc/crontab
(como root
):
# m h dom mon dow user command
00 10 * * 1-4 tina /location/of/your/monitor.sh > /your/output.log
Faça o mesmo com o lote de sexta-feira, mas altere seu monitor.sh
de acordo com suas necessidades.
Não se esqueça de marcar monitor.sh
como executável:
$ chmod +x monitor.sh
Para mais informações, consulte o cron man-pages
ou alguns exemplos úteis aqui