디렉토리 쉘 스크립트 문제

디렉토리 쉘 스크립트 문제

업무용으로 작성 중인 쉘 스크립트에 몇 가지 문제가 있습니다. 디렉터리를 표시하는 크롬 인스턴스를 종료한 다음 슬라이드쇼를 표시하는 크롬 인스턴스를 열 때까지(Raspberry Pi가 충분히 오랫동안 유휴 상태인 경우) 모든 것이 제대로 작동하는 것 같습니다.

내가 보는 것은 아무것도 건드리지 않았는데도 슬라이드 크롬이 죽는 것입니다. xprintidle인지 알 수 없습니다. 유휴 타이머가 표시되는 내용을 확인하기 위해 에코 스크립트를 실행하더라도 크롬이 종료될 때 유휴 타이머가 재설정되어 활동을 표시하고 때로는 재설정되지 않고 여전히 남아 있습니다. on 슬라이드는 해당 시간 범위 동안 표시되어야 합니다.

이것은 첫 번째 부분을 실행하는 코드입니다. 루프에서 실행되어 Chrome에 디렉토리 페이지가 열려 있는지 확인합니다. screenaver.status 파일이 없으면 사용자가 디렉토리를 닫으면 해당 페이지가 닫히게 됩니다. 다시 엽니다(이 스크립트는 자동 실행으로 시작됩니다).

#!/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

이것은 마우스 움직임 시 화면 보호기 프로세스를 종료하는 코드입니다(xprintidle이 재설정됨). 이는 또한 2분마다 chrome 인스턴스의 사용자 데이터를 지우고 xprintidle이 특정 시간에 도달하면 디렉토리 chrome 세션을 종료하고 화면 보호기 세션을 엽니다(이 스크립트는 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

모든 도움에 크게 감사드립니다.

관련 정보