Problemas com script de shell de catálogo

1

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.

    
por BluePlastic 11.08.2017 / 20:14

0 respostas