Estou correndo para alguns engasos em um script de shell que estou fazendo para o meu trabalho. Tudo parece estar funcionando corretamente até chegar ao ponto em que ele mata a instância do chrome que está exibindo um catálogo e, em seguida, abre uma instância do chrome que exibe uma apresentação de slides se o pi do raspberry estiver ocioso por tempo suficiente.
O que estou vendo é o cromo do slideshow sendo morto mesmo que nada tenha sido tocado. Eu não posso dizer se é xprintidle mesmo que eu esteja executando um script de eco para verificar o que o temporizador ocioso exibe, quando o cromo é morto, por vezes, o temporizador ocioso foi redefinido indicando atividade e às vezes não é redefinido e ainda no prazo em que deve estar exibindo essa apresentação de slides.
Esse é o código que executa a primeira parte, é executado em um loop e verifica se o cromo está aberto para a página de catálogo, a menos que o arquivo screensaver.status esteja presente. Isso garante que o catálogo seja fechado por um usuário ele será reaberto (Este script é executado na inicialização como autorun):
#!/bin/bash
while :
do
RUNNING=$(pidof chromium-browse)
if [ -n "$RUNNING" ] && [ ! -f /home/pi/statusfiles/screensaver.status ]
then
sleep 1
else
touch /home/pi/statusfiles/catalog.status
chromium-browser --start-maximized --user-data-dir=/home/pi/chromiumsessions/chromiumlive --incognito http://www.google.com
sleep 10
fi
sleep 1
done
Este é o código que executa o processo para matar o processo de proteção de tela quando o mouse é movido (fazendo com que o xprintidle seja reinicializado). Isso também limpa os dados do usuário da instância do chrome a cada 2 minutos e quando o xprintidle atinge um determinado tempo mata a sessão do catálogo chrome e abre a sessão do screensaver (Este script é executado como um cronjob):
#!/bin/bash
while true
do
RUNNING=$(pidof chromium-browse)
IDLETIME=$(export DISPLAY=:0 && sudo -u pi xprintidle)
if [ "$IDLETIME" -lt "120000" ] && [ ! -f /home/pi/statusfiles/catalog.status ]
then
killall chromium-browser
rm -rf /home/pi/statusfiles/screensaver.status
else
sleep 1
fi
if [ "$IDLETIME" -gt "120000" ] && [ "$IDLETIME" -lt "300000" ] && [ -f /home/pi/statusfiles/catalog.status ]
then
killall chromium-browser
sleep 1
rm -rf /home/pi/chromiumsessions/chromiumlive
rm -rf /home/pi/Downloads/*
mkdir /home/pi/chromiumsessions/chromiumlive
chown -R pi:pi /home/pi/chromiumsessions/chromiumlive
cp -R /home/pi/chromiumsessions/chromiumgood/* /home/pi/chromiumsessions/chromiumlive/
chown -R pi:pi /home/pi/chromiumsessions/chromiumlive
rm -rf /home/pi/statusfiles/catalog.status
sleep 120
else
sleep 1
fi
if [ "$IDLETIME" -gt "300000" ] && [ ! -f /home/pi/statusfiles/screensaver.status ]
then
touch /home/pi/statusfiles/screensaver.status
killall chromium-browser
rm -rf /home/pi/statusfiles/catalog.status
chromium-browser --temp-profile --kiosk --start-fullscreen http://www.google.com/
else
sleep 1
fi
done
Toda e qualquer ajuda é muito apreciada.