У меня есть два правила: одно, когда устройство, мой телефон, подключено, а другое - когда оно отключено. Правило add выполняет правило удаления, а не. Вот мое правило удев. Я упростил, но событие удаления не запускается.
#RUNS:
KERNEL=="sd?1", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0ff9", SYMLINK+="phone", ACTION=="add", RUN+="/usr/bin/touch /tmp/udev.add"
#DOES NOT RUN:
KERNEL=="sd?1", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0ff9", SYMLINK+="phone", ACTION=="remove", RUN+="/usr/bin/touch /tmp/udev.remove"
Почему один бежит, а другой нет?
Необходимо будет осуществить рефакторинг правило удаления, как обрисовано в общих чертах здесь: http://www.linuxquestions.org/questions/linux-desktop-74/udev-not-doing-remove-rules-841733/
Суммируя содержание ссылки, кажется, что, после того как устройство удалено, некоторые его атрибуты больше не читаемы, таким образом, необходимо будет контролировать удаление устройства и внимание на атрибуты, которые выводятся с udevadm monitor --environment --udev
.
Кроме того, создание символьной ссылки во время удаления просто неправильный.