udev power_supply 규칙이 트리거되지 않았습니다.

udev power_supply 규칙이 트리거되지 않았습니다.

이것이 여기서 가장 일반적인 문제인 것 같다는 것을 알고 있지만 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_ONLINEAC 어댑터 전원에서 제거되면 값이 1에서 0으로 변경되므로 항상 측정할 수 있습니다.

관련 정보