Не может заставить udev выполнять правила cutom

Я пытаюсь изменить некоторые настройки с помощью udev, когда я включаю и ac приемный родитель, но наклон, кажется, заставляет его работать. Я выполняю человечность 15.04, и это - то, что я имею:

sudo systemctl status udev
● systemd-udevd.service - udev Kernel Device Manager
   Loaded: loaded (/lib/systemd/system/systemd-udevd.service; static; vendor preset: enabled)
   Active: active (running) since lör 2015-05-02 20:28:42 CEST; 2h 3min ago
     Docs: man:systemd-udevd.service(8)
           man:udev(7)
 Main PID: 293 (systemd-udevd)
   CGroup: /system.slice/systemd-udevd.service
           └─293 /lib/systemd/systemd-udevd
agni% ls -l /etc/udev/rules.d/50*
-rw-r--r-- 1 root root 122 maj  2 20:25 /etc/udev/rules.d/50-kappa.rules

Это - то, что содержит правило, я попробовал несколько разных вещей, но это - то, что в настоящее время находится в нем, и от того, что я понимаю, что оно должно работать

cat /etc/udev/rules.d/50-kappa.rules 
ACTION=="change", SUBSYSTEM=="power_supply", RUN+="/usr/local/bin/power-change.sh true"

и сценарий, который должен работать

ls -l /usr/local/bin/power-change.sh 
-rwxr-xr-x 1 root root 255 maj  2 17:24 /usr/local/bin/power-change.sh 
cat /usr/local/bin/power-change.sh 
set_ac() {
    echo -e "$(date)\nAC CONNECTED" > /home/kempe/test2.txt
}

set_bat() {
    echo -e "$(date)\nAC DISCONNECTED" > /home/kempe/test2.txt
}

case $1 in
    true) set_ac ;;
    false) set_bat ;;
    *) exit 1 ;;
esac

exit 0

И это - то, что я сделал, чтобы попытаться заставить его работать с любой удачей

sudo udevadm control --reload    #no effect
sudo udevadm trigger    # no effect
sudo reboot    # no effect :)
udevadm monitor --property
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[816.963544] change   /devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0003:00/power_supply/ADP1 (power_supply)
ACTION=change
DEVPATH=/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0003:00/power_supply/ADP1
POWER_SUPPLY_NAME=ADP1
POWER_SUPPLY_ONLINE=0
SEQNUM=2847
SUBSYSTEM=power_supply

UDEV  [816.966150] change   /devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0003:00/power_supply/ADP1 (power_supply)
ACTION=change
DEVPATH=/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0003:00/power_supply/ADP1
POWER_SUPPLY_NAME=ADP1
POWER_SUPPLY_ONLINE=0
SEQNUM=2847
SUBSYSTEM=power_supply
USEC_INITIALIZED=6963257

KERNEL[817.171654] change   /devices/virtual/backlight/mba6x_backlight (backlight)
ACTION=change
DEVPATH=/devices/virtual/backlight/mba6x_backlight
SEQNUM=2848
SOURCE=sysfs
SUBSYSTEM=backlight

UDEV  [817.174385] change   /devices/virtual/backlight/mba6x_backlight (backlight)
ACTION=change
DEVPATH=/devices/virtual/backlight/mba6x_backlight
SEQNUM=2848
SOURCE=sysfs
SUBSYSTEM=backlight
SYSTEMD_WANTS=systemd-backlight@backlight:mba6x_backlight.service
TAGS=:systemd:
USEC_INITIALIZED=8174

Если я запускаю скрипт непосредственно от терминала, он хорошо работает, таким образом, нет никакой проблемы там

/usr/local/bin/power-change.sh true
agni% cat /home/kempe/test2.txt 
-e lör  2 maj 2015 23:06:52 CEST
AC CONNECTED

Какие-либо предложения?

3
задан 4 May 2015 в 12:09

1 ответ

#!/bin/sh... Где является hashbang моим другом?

  • hashbang отсутствует в сценарии:

    udev не запускает эти программы ни на каком активном терминале, и он не выполняет их под контекстом оболочки. Обязательно удостоверьтесь, что Ваша программа отмечена исполняемый файл, если это - сценарий оболочки, гарантируют, что это запускается с соответствующей хижины (например, #!/bin/sh), и не ожидайте, что любой стандартный вывод появится на Вашем терминале.

    источник: Запись udev правила

  • Иначе, назовите его с /bin/sh

    ACTION=="change", SUBSYSTEM=="power_supply", RUN+="bin/sh /usr/local/bin/power-change.sh true"
    

Я неправильно искал что, продолжая в правиле в течение приблизительно двух часов. То, что урок для меня также.

BTW, можно отладить и протестировать установку udev.

sudo udevadm test /sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0003:00/power_supply/ADP1
3
ответ дан 1 December 2019 в 16:28

Другие вопросы по тегам:

Похожие вопросы: