En el crontab -u pi -e
de mi marco digital tengo dos procesos.
El primero llamafeh
al reiniciar e inicia una presentación de diapositivas.
@reboot bash /home/pi/ledslide1.sh >> /home/pi/logs/slidelog 2&>1
Y luego se deben iniciar otras instancias en 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
...
Pero la feh
presentación de diapositivas se repite. De esa manera primero tengo que finalizar el proceso, ¿verdad? timeout
no funciona porque no sé cuando se reinicia?
Respuesta1
En sus scripts ledslide.sh, simplemente use pkill -9 feh
to kill feh
. No es necesario realizar un seguimiento de los PID ni nada por el estilo. pkill
se utiliza para buscar y eliminar procesos con un nombre determinado. Sugiero leer manpage
for pkill
y pgrep
.
Respuesta2
Esto me ha funcionado hasta ahora:
@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
El archivo .sh lo invoca feh
y lo pone en segundo plano. pkill -9 [KEYWORD]
cierra el feh
proceso.