Como faço para matar um cron job antes de executar outro?

Como faço para matar um cron job antes de executar outro?

No crontab -u pi -emeu porta-retratos digital, tenho dois processos.

O primeiro chamafehna 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 fehapresentação de slides está sendo repetida. Dessa forma eu tenho que matar o processo primeiro, certo? timeoutnão está funcionando porque não sei quando ocorre a reinicialização?

Responder1

Nos seus scripts ledslide.sh, basta usar pkill -9 fehto 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 manpagefor pkille 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 fehe o coloca em segundo plano. pkill -9 [KEYWORD]fecha o fehprocesso.

informação relacionada