No crontab -u pi -e
meu porta-retratos digital, tenho dois processos.
O primeiro chamafeh
na reinicialização e inicia uma apresentação de slides.
@reboot bash /home/pi/ledslide1.sh >> /home/pi/logs/slidelog 2&>1
E então outras instâncias devem ser iniciadas em determinados momentos.
15 8 * * * bash /home/pi/ledslide2.sh >> /home/pi/logs/slidelog 2&>1
15 9 * * * bash /home/pi/ledslide3.sh >> /home/pi/logs/slidelog 2&>1
...
Mas a feh
apresentação de slides está sendo repetida. Dessa forma eu tenho que matar o processo primeiro, certo? timeout
não está funcionando porque não sei quando ocorre a reinicialização?
Responder1
Nos seus scripts ledslide.sh, basta usar pkill -9 feh
to kill feh
. Não há necessidade de acompanhar PIDs nem nada. pkill
é usado para procurar e eliminar processos com um determinado nome. Sugiro a leitura do manpage
for pkill
e pgrep
.
Responder2
Isso funcionou para mim até agora:
@reboot bash /home/pi/ledslide1.sh >> /home/pi/logs/slidelog 2&>1
15 8 * * * pkill -9 feh && bash /home/pi/ledslide2.sh >> /home/pi/logs/slidelog 2&>1
O arquivo .sh o invoca feh
e o coloca em segundo plano. pkill -9 [KEYWORD]
fecha o feh
processo.