이것이 여기서 가장 일반적인 문제인 것 같다는 것을 알고 있지만 udev
모든 작업을 올바르게 수행했지만 여전히 내 규칙이 실행되지는 않습니다. 스크립트는 실행 가능하며 명령줄에서 수동으로 실행하면 완벽하게 실행됩니다. (우분투 15.04)
스크립트는 간단해야 합니다. 플러그를 뽑으면 화면이 어두워지고, 플러그를 꽂으면 화면이 최대 밝기로 돌아갑니다. 규칙은 다음과 같습니다( 이름이 다음과 같은 파일 80-power_supply.rules
에 있음 /etc/udev/rules.d/
:
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_PRESENT}=="1", RUN+="/usr/local/bin/powermonitor.sh up"
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_PRESENT}=="0", RUN+="/usr/local/bin/powermonitor.sh down"
내 스크립트:
#!/bin/sh
FILE="/sys/class/backlight/intel_backlight/brightness";
if [ "$1" = "up" ]; then
echo "937" > $FILE;
fi
if [ "$1" = "down" ]; then
echo "92" > $FILE;
fi
up
또는 매개변수를 사용하여 스크립트를 수동으로 실행하면 down
완벽하게 실행됩니다. 하지만 전원을 분리했다가 다시 연결해도 아무 일도 일어나지 않습니다.
답변1
로 변경 .ENV{POWER_SUPPLY_PRESENT}
ENV{POWER_SUPPLY_ONLINE}
POWER_SUPPLY_PRESENT
연결/연결해제시 변경되지 않아서 테스트할 환경변수가 잘못되었습니다.
POWER_SUPPLY_ONLINE
AC 어댑터 전원에서 제거되면 값이 1에서 0으로 변경되므로 항상 측정할 수 있습니다.