Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: udev правило не запускает скрипт  (Прочитано 5186 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nip4Fun

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #30 : 23 Августа 2017, 17:22:30 »
nip4fun@Dell:~$ /bin/fuser -k -10 /home/nip4fun/mouse_switcher.sh
nip4fun@Dell:~$ /bin/fuser -k -11 /home/nip4fun/mouse_switcher.sh
реакции на команды нет

nip4fun@Dell:~$ sudo su
root@Dell:/home/nip4fun# cd /
root@Dell:/# /bin/fuser -k -10 /home/nip4fun/mouse_switcher.sh
Не удалось выполнить функцию stat для файла /proc/9665/fd/10: Отказано в доступе
Не удалось выполнить функцию stat для файла /proc/9665/fd/1023: Отказано в доступе
Не удалось выполнить функцию stat для файла /proc/9705/fd/1023: Отказано в доступе
root@Dell:/# /bin/fuser -k -11 /home/nip4fun/mouse_switcher.sh
Не удалось выполнить функцию stat для файла /proc/9665/fd/10: Отказано в доступе
Не удалось выполнить функцию stat для файла /proc/9665/fd/1023: Отказано в доступе
Не удалось выполнить функцию stat для файла /proc/9705/fd/1023: Отказано в доступе
« Последнее редактирование: 23 Августа 2017, 17:24:24 от Nip4Fun »

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #31 : 23 Августа 2017, 18:36:10 »
lsof /home/nip4fun/mouse_switcher.sh; cat /home/nip4fun/mouse_switcher.sh?

Оффлайн Nip4Fun

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #32 : 23 Августа 2017, 18:52:03 »
Код: [Выделить]
lsof /home/nip4fun/mouse_switcher.sh; cat /home/nip4fun/mouse_switcher.sh
?
nip4fun@Dell:~$ lsof /home/nip4fun/mouse_switcher.sh; cat /home/nip4fun/mouse_switcher.sh
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
      Output information may be incomplete.
trap '/usr/bin/gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled' 10
trap '/usr/bin/gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled' 11
while :; do sleep 1; done

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #33 : 23 Августа 2017, 19:04:26 »
Скрипт в фон запускал от рута? (надо от юзера)

Оффлайн Nip4Fun

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #34 : 23 Августа 2017, 19:28:23 »
Скрипт в фон запускал от рута? (надо от юзера)
теперь так:
nip4fun@Dell:~$ lsof /home/nip4fun/mouse_switcher.sh; cat /home/nip4fun/mouse_switcher.sh
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
      Output information may be incomplete.
COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
bash    1885 nip4fun  255r   REG    8,5      211 24384377 /home/nip4fun/mouse_switcher.sh
trap '/usr/bin/gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled' 10
trap '/usr/bin/gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled' 11
while :; do sleep 1; done

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #35 : 23 Августа 2017, 20:45:08 »
Теперь командами fuser переключает?

Оффлайн Nip4Fun

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #36 : 24 Августа 2017, 17:47:03 »
да, но udev не хочет...
nip4fun@Dell:~$ /bin/fuser -k -11 /home/nip4fun/mouse_switcher.sh
/home/nip4fun/mouse_switcher.sh:  1885nip4fun@Dell:~$ /bin/fuser -k -10 /home/nip4fun/mouse_switcher.sh
/home/nip4fun/mouse_switcher.sh:  1885
81-usb-mouse.rules
SUBSYSTEM=="input", ACTION=="add", ENV{ID_VENDOR}=="275d", ENV{ID_MODEL_ID}=="0ba6", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/nip4fun/.Xauthority", RUN+="/bin/fuser -k -10 /home/nip4fun/mouse_switcher.sh"
SUBSYSTEM=="input", ACTION=="remove", ENV{ID_VENDOR}=="275d", ENV{ID_MODEL_ID}=="0ba6", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/nip4fun/.Xauthority", RUN+="/bin/fuser -k -11 /home/USER/mouse_switcher.sh"

nip4fun@Dell:~$ udevadm test /devices/pci0000:00/0000:00:14.0/usb1/1-1/1:1.0/0003:275D:0BA6.0007/input/input19/
calling: test
version 229
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

=== trie on-disk ===
tool version:          229
file size:         7064122 bytes
header size             80 bytes
strings            1764282 bytes
nodes              5299760 bytes
Load module index
timestamp of '/etc/systemd/network' changed
timestamp of '/lib/systemd/network' changed
Parsed configuration file /lib/systemd/network/99-default.link
Created link configuration context.
timestamp of '/etc/udev/rules.d' changed
timestamp of '/lib/udev/rules.d' changed
Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules
Reading rules file: /lib/udev/rules.d/40-crda.rules
Reading rules file: /lib/udev/rules.d/40-usb-media-players.rules
Reading rules file: /lib/udev/rules.d/40-usb_modeswitch.rules
Reading rules file: /lib/udev/rules.d/40-vm-hotadd.rules
Reading rules file: /lib/udev/rules.d/50-apport.rules
Reading rules file: /lib/udev/rules.d/50-bluetooth-hci-auto-poweron.rules
Reading rules file: /lib/udev/rules.d/50-firmware.rules
Reading rules file: /lib/udev/rules.d/50-udev-default.rules
Reading rules file: /lib/udev/rules.d/56-hpmud.rules
Reading rules file: /lib/udev/rules.d/60-block.rules
Reading rules file: /lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /lib/udev/rules.d/60-drm.rules
Reading rules file: /lib/udev/rules.d/60-evdev.rules
Reading rules file: /lib/udev/rules.d/60-gnupg.rules
Reading rules file: /lib/udev/rules.d/60-gnupg2.rules
Reading rules file: /lib/udev/rules.d/60-inputattach.rules
Reading rules file: /lib/udev/rules.d/60-libgphoto2-6.rules
Reading rules file: /lib/udev/rules.d/60-libsane.rules
Reading rules file: /lib/udev/rules.d/60-pcmcia.rules
Reading rules file: /lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /lib/udev/rules.d/60-serial.rules
Reading rules file: /lib/udev/rules.d/60-xdiagnose.rules
Reading rules file: /lib/udev/rules.d/61-gnome-bluetooth-rfkill.rules
Reading rules file: /lib/udev/rules.d/61-persistent-storage-android.rules
Reading rules file: /lib/udev/rules.d/64-btrfs.rules
Reading rules file: /lib/udev/rules.d/64-xorg-xkb.rules
Reading rules file: /lib/udev/rules.d/65-libwacom.rules
Reading rules file: /lib/udev/rules.d/66-snapd-autoimport.rules
Reading rules file: /lib/udev/rules.d/66-xorg-synaptics-quirks.rules
Reading rules file: /lib/udev/rules.d/69-cd-sensors.rules
Reading rules file: /lib/udev/rules.d/69-libmtp.rules
Reading rules file: /lib/udev/rules.d/69-wacom.rules
Reading rules file: /lib/udev/rules.d/70-debian-uaccess.rules
Reading rules file: /lib/udev/rules.d/70-mouse.rules
Reading rules file: /lib/udev/rules.d/70-power-switch.rules
Reading rules file: /lib/udev/rules.d/70-printers.rules
Reading rules file: /lib/udev/rules.d/70-uaccess.rules
Reading rules file: /lib/udev/rules.d/71-nvidia.rules
Reading rules file: /lib/udev/rules.d/71-power-switch-proliant.rules
Reading rules file: /lib/udev/rules.d/71-seat.rules
Reading rules file: /lib/udev/rules.d/71-u-d-c-gpu-detection.rules
Reading rules file: /lib/udev/rules.d/73-seat-late.rules
Reading rules file: /lib/udev/rules.d/73-special-net-names.rules
Reading rules file: /lib/udev/rules.d/73-usb-net-by-mac.rules
Reading rules file: /lib/udev/rules.d/75-net-description.rules
Reading rules file: /lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /lib/udev/rules.d/77-mm-cinterion-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-ericsson-mbm.rules
Reading rules file: /lib/udev/rules.d/77-mm-huawei-net-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-longcheer-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-mtk-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-nokia-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-platform-serial-whitelist.rules
Reading rules file: /lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-simtech-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-telit-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-usb-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules
Reading rules file: /lib/udev/rules.d/77-mm-x22x-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-zte-port-types.rules
Reading rules file: /lib/udev/rules.d/78-graphics-card.rules
Reading rules file: /lib/udev/rules.d/78-sound-card.rules
Reading rules file: /lib/udev/rules.d/80-debian-compat.rules
Reading rules file: /lib/udev/rules.d/80-drivers.rules
Reading rules file: /lib/udev/rules.d/80-ifupdown.rules
Reading rules file: /lib/udev/rules.d/80-libinput-device-groups.rules
Reading rules file: /lib/udev/rules.d/80-mm-candidate.rules
Reading rules file: /lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /lib/udev/rules.d/80-snappy-assign.rules
Reading rules file: /lib/udev/rules.d/80-udisks2.rules
Reading rules file: /etc/udev/rules.d/81-usb-mouse.rules
Reading rules file: /lib/udev/rules.d/84-nm-drivers.rules
Reading rules file: /lib/udev/rules.d/85-brltty.rules
Reading rules file: /lib/udev/rules.d/85-hdparm.rules
Reading rules file: /lib/udev/rules.d/85-hplj10xx.rules
Reading rules file: /lib/udev/rules.d/85-keyboard-configuration.rules
Reading rules file: /lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /lib/udev/rules.d/85-regulatory.rules
Reading rules file: /lib/udev/rules.d/90-alsa-restore.rules
Reading rules file: /lib/udev/rules.d/90-fwupd-devices.rules
Reading rules file: /lib/udev/rules.d/90-libgpod.rules
Reading rules file: /lib/udev/rules.d/90-libinput-model-quirks.rules
Reading rules file: /lib/udev/rules.d/90-pulseaudio.rules
Reading rules file: /lib/udev/rules.d/95-cd-devices.rules
Reading rules file: /lib/udev/rules.d/95-upower-csr.rules
Reading rules file: /lib/udev/rules.d/95-upower-hid.rules
Reading rules file: /lib/udev/rules.d/95-upower-wup.rules
Reading rules file: /lib/udev/rules.d/97-hid2hci.rules
Reading rules file: /lib/udev/rules.d/99-systemd.rules
rules contain 393216 bytes tokens (32768 * 12 bytes), 35889 bytes strings
26650 strings (221410 bytes), 23046 de-duplicated (189126 bytes), 3605 trie nodes used
value '[dmi/id]sys_vendor' is 'Dell Inc.'
value '[dmi/id]sys_vendor' is 'Dell Inc.'
IMPORT builtin 'input_id' /lib/udev/rules.d/50-udev-default.rules:14
capabilities/ev raw kernel attribute: 17
capabilities/abs raw kernel attribute: 0
capabilities/rel raw kernel attribute: 103
capabilities/key raw kernel attribute: 70000 0 0 0 0
properties raw kernel attribute: 0
test_key: checking bit block 0 for any keys; found=0
test_key: checking bit block 64 for any keys; found=0
test_key: checking bit block 128 for any keys; found=0
test_key: checking bit block 192 for any keys; found=0
IMPORT builtin 'hwdb' /lib/udev/rules.d/50-udev-default.rules:15
IMPORT builtin 'hwdb' returned non-zero
IMPORT builtin 'usb_id' /lib/udev/rules.d/60-persistent-input.rules:7
/sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0: if_class 3 protocol 0
IMPORT builtin 'path_id' /lib/udev/rules.d/60-persistent-input.rules:31
RUN 'kmod load $env{MODALIAS}' /lib/udev/rules.d/80-drivers.rules:5
RUN '/bin/fuser -k -10 /home/nip4fun/mouse_switcher.sh' /etc/udev/rules.d/81-usb-mouse.rules:2
.INPUT_CLASS=mouse
.MM_USBIFNUM=00
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:275D:0BA6.0007/input/input19
DISPLAY=:0
EV=17
ID_BUS=usb
ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_1_1_0
ID_INPUT=1
ID_INPUT_MOUSE=1
ID_MODEL=USB_OPTICAL_MOUSE
ID_MODEL_ENC=USB\x20OPTICAL\x20MOUSE\x20
ID_MODEL_ID=0ba6
ID_PATH=pci-0000:00:14.0-usb-0:1:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_1_1_0
ID_REVISION=0100
ID_SERIAL=275d_USB_OPTICAL_MOUSE
ID_TYPE=hid
ID_USB_DRIVER=usbhid
ID_USB_INTERFACES=:030102:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=275d
ID_VENDOR_ENC=275d
ID_VENDOR_ID=275d
KEY=70000 0 0 0 0
MODALIAS=input:b0003v275Dp0BA6e0111-e0,1,2,4,k110,111,112,r0,1,8,am4,lsfw
MSC=10
NAME="USB OPTICAL MOUSE "
PHYS="usb-0000:00:14.0-1/input0"
PRODUCT=3/275d/ba6/111
PROP=0
REL=103
SUBSYSTEM=input
TAGS=:seat:
UNIQ=""
USEC_INITIALIZED=10652868788
XAUTHORITY=/home/nip4fun/.Xauthority
run: 'kmod load input:b0003v275Dp0BA6e0111-e0,1,2,4,k110,111,112,r0,1,8,am4,lsfw'
run: '/bin/fuser -k -10 /home/nip4fun/mouse_switcher.sh'
Unload module index
Unloaded link configuration context.


Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #37 : 24 Августа 2017, 18:04:51 »
Убери
ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/nip4fun/.Xauthority",
Если не помогло:
Вместо команд в RUN пропиши так:
RUN+="/usr/bin/script -c '/bin/fuser -k -10 /home/nip4fun/mouse_switcher.sh' /home/nip4fun/udev_run_fuser.log"RUN+="/usr/bin/script -c '/bin/fuser -k -11 /home/nip4fun/mouse_switcher.sh' /home/nip4fun/udev_run_fuser.log"
И смотри что в /home/nip4fun/udev_run_fuser.log

Оффлайн Nip4Fun

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #38 : 24 Августа 2017, 18:38:53 »
Убери
Код: [Выделить]
ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/nip4fun/.Xauthority",
так не работает

Вместо команд в RUN пропиши так:
Код: [Выделить]
RUN+="/usr/bin/script -c '/bin/fuser -k -10 /home/nip4fun/mouse_switcher.sh' /home/nip4fun/udev_run_fuser.log"
Код: [Выделить]
RUN+="/usr/bin/script -c '/bin/fuser -k -11 /home/nip4fun/mouse_switcher.sh' /home/nip4fun/udev_run_fuser.log"
заработало

лог такой:
Script started on Thu Aug 24 18:37:02 2017
Cannot stat file /proc/1873/fd/10: Permission denied
Cannot stat file /proc/1873/fd/1023: Permission denied
Cannot stat file /proc/1899/fd/1023: Permission denied
/home/nip4fun/mouse_switcher.sh:  1885

Script done on Thu Aug 24 18:37:02 2017

Пользователь добавил сообщение 24 Августа 2017, 18:40:19:
что бы лог отключить достаточно написать так?
RUN+="/usr/bin/script -c '/bin/fuser -k -11 /home/nip4fun/mouse_switcher.sh'"

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #39 : 24 Августа 2017, 18:50:38 »
заработало
Переключает?

что бы лог отключить достаточно написать так?
Нет. Лог будет писатся в файл typescript в текущей директории (в корене /)

Оффлайн Nip4Fun

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #40 : 24 Августа 2017, 19:17:47 »
Цитата: Nip4Fun от Сегодня в 19:38:53
заработало
Переключает?
да, при удалении первых частей что вы написали и добавлением в run, скрипт стал отрабатывать через udev

Пользователь добавил сообщение 24 Августа 2017, 19:20:25:
Цитата: Nip4Fun от Сегодня в 19:38:53
что бы лог отключить достаточно написать так?
Нет. Лог будет писатся в файл typescript в текущей директории (в корене /)
как привести в продакшн вид что бы без мусора работало ? =)
« Последнее редактирование: 24 Августа 2017, 19:20:25 от Nip4Fun »

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #41 : 24 Августа 2017, 20:32:07 »
да, при удалении первых частей что вы написали и добавлением в run, скрипт стал отрабатывать через udev
Покажи 81-usb-mouse.rules

Оффлайн Nip4Fun

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #42 : 24 Августа 2017, 20:38:22 »
Цитата: Nip4Fun от Сегодня в 20:17:47
да, при удалении первых частей что вы написали и добавлением в run, скрипт стал отрабатывать через udev
Покажи 81-usb-mouse.rules
81-usb-mouse.rules
# firmware off touch to usb mouse
SUBSYSTEM=="input", ACTION=="add", ENV{ID_VENDOR}=="275d", ENV{ID_MODEL_ID}=="0ba6", RUN+="/usr/bin/script -c '/bin/fuser -k -10 /home/nip4fun/mouse_switcher.sh' /home/nip4fun/udev_run_fuser.log"
SUBSYSTEM=="input", ACTION=="remove", ENV{ID_VENDOR}=="275d", ENV{ID_MODEL_ID}=="0ba6", RUN+="/usr/bin/script -c '/bin/fuser -k -11 /home/nip4fun/mouse_switcher.sh' /home/nip4fun/udev_run_fuser.log"

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #43 : 24 Августа 2017, 21:45:59 »
/home/nip4fun/udev_run_fuser.log замени на /dev/null

Оффлайн Nip4Fun

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: udev правило не запускает скрипт
« Ответ #44 : 25 Августа 2017, 15:41:17 »
Все получилось спасибо, расскажу что было сделано если кому вдруг пригодится.

создал 81-usb-mouse.rules
/etc/udev/rules.d/
SUBSYSTEM=="input", ACTION=="add", ENV{ID_VENDOR}=="СВОЙ_ID", ENV{ID_MODEL_ID}=="СВОЙ_ID", RUN+="/usr/bin/script -c '/bin/fuser -k -10 /home/"USER"/mouse_switcher.sh' /dev/null"
SUBSYSTEM=="input", ACTION=="remove", ENV{ID_VENDOR}=="СВОЙ_ID", ENV{ID_MODEL_ID}=="СВОЙ_ID", RUN+="/usr/bin/script -c '/bin/fuser -k -11 /home/"USER"/mouse_switcher.sh' /dev/null"

создал mouse_switcher.sh
/home/"USER"/
trap '/usr/bin/gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled' 10
trap '/usr/bin/gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled' 11
while :; do sleep 1; done

создал mouse_switcher.desktop
/home/"USER"/.config/autostart/
[Desktop Entry]
Name=Run mouse switcher script
Type=Application
Exec=sh -c 'bash mouse_switcher.sh &'

выставить права на запуск mouse_switcher.sh
chmod +x /home/"USER"/mouse_switcher.sh

"USER" - заменить на своего юзера
"СВОЙ_ID" - заменить на ID своего оборудования.
« Последнее редактирование: 25 Августа 2017, 16:44:06 от Nip4Fun »

 

Страница сгенерирована за 0.04 секунд. Запросов: 25.