Синхронизация USB через udev?

Я являюсь довольно отчаянным после нескольких попыток создания довольно простой резервной программы. После 6 часов следующего и пробующий все сообщения по той теме, я не знаю решения. Я просто хочу, чтобы сценарий Java запустился, как только я включаю Карту памяти.

sudoedit /etc/udev/rules.d/90-local.rules

В моих локальных правилах I в основном, просто хотите выполнить мою оболочку SUPERJAVA, я уже попробовал весь вид ATTRS / комбинации ATTR. Мое последнее состояние:

BUS=="usb", KERNEL=="sd*", ATTRS{serial}=="4C530009320619116345", ACTION=="add", SYMLINK+="kram", RUN+="/home/d/Desktop/DirSyncPro-1.51-Linux/SUPERJAVA.sh"

Оболочка, просто запускает простую Синхронизирующую программу, но работает сам по себе, если я регулярно запускаю ее в терминале.

#!/bin/bash     java -jar dirsyncpro.jar

Однако в файле журнала, это не прилагает усилия для запущения программы, если я включаю USB.

tail -f /var/log/syslog 

Только возвратить шаги: 1. lsusb, который дает мне: entBus 002 Device 012: ID 0781:5572 SanDisk Corp. 2. udevadm info -a -p $(udevadm info -q path -n /dev/bus/usb/002/012), который дает мне: looking at device '/devices/pci0000:00/0000:00:1d.7/usb2/2-2': KERNEL=="2-2" SUBSYSTEM=="usb" ...ATTR{idVendor}=="0781" ...ATTR{serial}=="4C530009320619116345" ...ATTR{idProduct}=="5572" ...ATTR{product}=="Cruzer Switch" ...ATTRS{idVendor}=="1d6b" ...ATTRS{idProduct}=="0002" ...ATTRS{product}=="EHCI Host Controller" ...

У кого-либо есть другая идея, что я мог попробовать? Разве udev больше не совместим с Ubuntu 14.04?

2
задан 27 October 2015 в 02:01

2 ответа

Ваше правило udev не стреляет.

Замена:

  • BUS=="usb" с SUBSYSTEM=="usb".
  • KERNEL=="sd*" с KERNEL=="2-2".

Тройная проверка:

  • Ваш порядковый номер ATTRS{serial}=="4C530009320619116345".
  • путь к Вашему сценарию.

Подавляют (на мгновение) SYMLINK+="kram". Можно добавить его назад позже, когда Вы удовлетворены, что Ваше правило работает.

Ваше новое udev правило должно быть:

SUBSYSTEM=="usb", KERNEL=="2-2", ATTRS{serial}=="4C530009320619116345", ACTION=="add", RUN+="/home/d/Desktop/DirSyncPro-1.51-Linux/SUPERJAVA.sh"

, Если это работает, попробуйте его без udev тег KERNEL=="2-2", поскольку это может быть лишним, особенно если Вы успешно idetify Ваше устройство события с его порядковым номером.

0
ответ дан 2 December 2019 в 23:50

udev не для долгих процессов, проверьте man udev. ищите привязку udev или просто окружите, наблюдайте за udev событием. Действительно синхронизируйте на уровне пользователя.

udevadm monitor -u может помочь, Python имеют pyudev...

0
ответ дан 2 December 2019 в 23:50

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

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