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

2

No crontab -u pi -e do meu quadro de imagem digital, tenho dois processos.

O primeiro chama feh na reinicialização e inicia uma apresentação de slides.

@reboot bash /home/pi/ledslide1.sh >> /home/pi/logs/slidelog 2&>1

E, em seguida, 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 apresentação de slides feh está sendo executada na repetição. Dessa forma eu tenho que matar o processo primeiro certo? timeout não está funcionando, porque eu não sei quando a reinicialização ocorre?

    
por Markus 13.09.2015 / 19:26

2 respostas

1

Nos seus scripts do ledslide.sh, use apenas pkill -9 feh para matar feh . Não há necessidade de acompanhar os PIDs ou qualquer coisa. pkill é usado para procurar e eliminar processos com um determinado nome. Sugiro ler o manpage para pkill e pgrep .

    
por 13.09.2015 / 20:48
1

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 invoca feh e coloca em segundo plano. pkill -9 [KEYWORD] fecha o processo feh .

    
por 13.09.2015 / 20:46

Tags