Запустите скрипт с помощью udev после подключения USB к RPi

Я пытаюсь запустить скрипт из правила udev после подключения любого USB-накопителя.

Когда я запускаю скрипт вручную, после нормального монтирования USB он будет работать нормально. Сценарий вызывает программу Python для запуска, и программа Python использует файл на USB-накопителе. Никаких проблем. Если я заставлю скрипт просто регистрировать дату в файле, это работает отлично. Итак, я знаю, что мое правило UDEV и мой скрипт работают нормально, каждый сам по себе.

Кажется, проблема возникает, когда udev вызывает скрипт, а затем скрипт вызывает программу python, а программа python работает неправильно. Я считаю, что USB-накопитель не завершил монтирование до запуска скрипта Python. При просмотре сверху мой скрипт начинает работать, затем начинает работать python, они оба заканчиваются, а затем я получаю всплывающее окно с доступом к файлам на моем USB-накопителе.

Поэтому я попытался заставить script1.sh вызвать script2.sh, вызвать python.py. Я попытался сделать так, чтобы script.sh вызывал python1.py, вызывая python2.py. Я попытался добавить функцию сна как в script.sh, так и в python.py. Я пробовал в правиле RUN+="/home/pi/script.sh & exit". Пробовал выйти в файлы. Я пробовал откреститься в файлах.

Что еще я могу попробовать?


person Matt    schedule 15.12.2015    source источник


Ответы (1)


Ну вы наверное описали свою проблему. Процесс монтирования слишком медленный. Вы можете смонтировать USB-устройство с вашего script.sh

Также вам, вероятно, потребуется отключить автоматическое монтирование USB-устройства только для вашей системы или конкретного устройства.

Если вы добавите символическую ссылку в правило udev, например. SYMLINK+="backup", то вы можете смонтировать это устройство:

mkdir -p /path/to/foo mount -t ext4 /dev/backup /path/to/foo

person 0xbadc0de    schedule 15.12.2015
comment
Я создал каталог и вручную смонтировал USB-накопитель, прежде чем пытаться его прочитать, и это решило мою проблему. Спасибо. В чем преимущество добавления символической ссылки? Без него нормально работало. - person Matt; 17.12.2015
comment
Единственным преимуществом добавления символической ссылки является удобочитаемое имя устройства. - person 0xbadc0de; 19.12.2015