%EC%97%90%EC%84%9C%20xserver%EB%A1%9C%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%A0%84%EB%8B%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
라즈베리 파이에서 실행되는 xserver에서 값을 얻으려고 합니다. 명령은 DISPLAY=:0 xssstate -i
명령줄에서 작동하지만 스크립트를 실행할 때는 작동하지 않습니다.
스크립트 localy를 실행하면 완벽하게 작동하지만 ssh를 통해 실행할 때는 그렇지 않습니다.
스크립트:
enter code here
#!/bin/bash
# Wanted trigger timeout in milliseconds.
IDLE_TIME=$((10*1000))
triggered=0
while [ 1 -eq 1 ]
do
sleep 1
sstime=$(DISPLAY=:0 xssstate -i)
echo "idletime $IDLE_TIME"
echo "sstime $sstime"
if [ "$sstime" -gt "$IDLE_TIME" ] || [ "$triggered" -eq 0 ]
then
echo 235 > /sys/waveshare/rpi_backlight/brightness
triggered=1
elif [ "$sstime" -lt "$IDLE_TIME" ] || [ "$triggered" -eq 1 ]
then
echo 0 > /sys/waveshare/rpi_backlight/brightness
triggered=0
else
triggered=0
fi
done
산출:
No protocol specified
Cannot open display.
idletime 10000
sstime
./backLTctrl.sh: line 15: [: : integer expression expected
No protocol specified
Cannot open display.
idletime 10000
sstime
./backLTctrl.sh: line 15: [: : integer expression expected
./backLTctrl.sh: line 19: [: : integer expression expected
No protocol specified
Cannot open display.
idletime 10000
sstime
./backLTctrl.sh: line 15: [: : integer expression expected
No protocol specified
Cannot open display.
idletime 10000
sstime
./backLTctrl.sh: line 15: [: : integer expression expected
./backLTctrl.sh: line 19: [: : integer expression expected