[РЕШЕНО] systemd-212-1 - сломали автомонтирование udev

P.S.
akorop
нет возможности различить, вставили диск или вынули
Есть такая команда
udevadm monitor -p
Запустите в консоли и смотрите выхлоп при загрузке и извлечении диска. Там будут знакомые вам параметры udev, а также его переменные окружения, которые тоже можно использовать в правилах. Если сомневаетесь, является ли тот или иной параметр переменной, можно посмотреть, как он используется в штатных правилах udev:
$ grep -r DISK_EJECT_REQUEST /usr/lib/udev/rules.d
/usr/lib/udev/rules.d/60-persistent-storage.rules:KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="?*", \
/usr/lib/udev/rules.d/60-persistent-storage.rules:KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \
/usr/lib/udev/rules.d/60-cdrom_id.rules:ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"

Запрос на извлечение диска (кнопкой на приводе) можно опознать по признаку
ENV{DISK_EJECT_REQUEST}=="?*"
Загруженный диск обнаруживается так (в противном случае диска нет):
ENV{ID_CDROM_MEDIA}=="?*"
Тип ФС udev определяет сам, запускать определение ещё раз совершенно не обязательно. Наличие ФС можно проверить так:
ENV{ID_FS_TYPE}=="?*"


твёрдой рукой загоняют в счастливое будущее
На самом деле, запуск юнита из udev с помощью systemctl придумал я сам, просто как первый подвернувшийся и самый очевидный способ запустить процесс так, чтобы он не был дочерним, и не задерживал udev.

Убивать "зависшие" дочерние процессы udev начал уже довольно давно, когда загрузка модулей была переведена с modprobe на libkmod, и тут выяснилось, что некоторые модули грузятся ужасно долго, а процесс udev, который теперь делает это через не имеющею собственного процесса библиотеку, останавливается и тупо ждёт непонятно чего. Когда стало понятно, что модернизировать все-все-все модули ядра (особенно старые и редко обновляемые) их разработчики не спешат, авторы udev начали решать проблему на своей стороне, путём введения таймаутов.
udev
ACTION=="change" KERNEL=="sr0" RUN+="/bin/systemctl start [email protected]%k"
unit
ExecStart=/patch/script.sh %I
shell
rmdir /mnt/dir-$1

%k-->%i-->$1

дальше в таком же духе)
ps. Type=oneshot в последних версиях уже имеет мелкий таймаут...
Ошибки в тексте-неповторимый стиль автора©
Извините,но или я настолько туп или вы здесь выпендриваетесь?
У меня есть правило(wiki),которое просто и без мудрости делает mount в /media на все диски,и umount.
А вы думаете,как круче примонтировать диск скриптами?
Я пишу тучу скриптов(Natrio),а я делаю так пишет(ind.indeviral),но копируют у вас конфиги(простые юзеры),и потом получается http://archlinux.org.ru/forum/topic/12758/
Но может я не сталкивался с проблемами CD/DVD/Bluray и flash,так скажите,что делаю неправильно,читая вики или форум?
У меня работают и монтируются flash,SD,cd(внешний dvd и запись на него).
А то если честно я уже не могу понять,поставил систему,сделай это:
http://archlinux.org.ru/forum/topic/12698/ или так
http://archlinux.org.ru/forum/topic/12758/
Последний крик моды - эхо 30-летней давности.
Natrio
Там будут знакомые вам параметры udev, а также его переменные окружения, которые тоже можно использовать в правилах.
Весьма привлекательно, но почему-то не работает. Вот такое правило приводит к (многократному) запуску сервиса:
KERNEL=="sr0", ACTION=="change", RUN+="/usr/bin/systemctl start autodvd.service"

А вот такое правило не срабатывает никогда, ни при вставлении диска, ни при извлечении:
KERNEL=="sr0", ACTION=="change", ENV{ID_FS_TYPE}=="?*", RUN+="/usr/bin/systemctl start autodvd.service"

Я принял к сведению, что в этом направлении можно копать, спасибо. Но, наверно, остановлюсь на том, что уже у меня есть, только подполирую маленько.
tchgefest
Очень глупый вопрос,а для чего автомонтирование в иксах

Потому что люди по религиозным, вероятно, соображениям не хотят ставить себе полноценную desktop environment, зато хотят иметь её возможности. И начинают городить их на скриптах, кто как умеет.
elsonador
зато хотят иметь её возможности. И начинают городить их на скриптах, кто как умеет.
Вот в этом и печаль,линукс 21 века,раньше RH4.0 ставилась на Р100 без проблем и стоила 1€ на базаре.
Последний крик моды - эхо 30-летней давности.
akorop, возможно, ваша проблема в "номере" правила. Насколько я понимаю, правила udev выполняются процессом по порядку. Если ваше правило номер 14 выполняется раньше того, которое создаёт переменную, то разумеется, оно ничего в ней не найдёт.

Попробуйте сменить "номер" на 99 и сделать
udevadm control --reload-rules
elsonador
tchgefest
Очень глупый вопрос,а для чего автомонтирование в иксах
Потому что люди по религиозным, вероятно, соображениям не хотят ставить себе полноценную desktop environment, зато хотят иметь её возможности. И начинают городить их на скриптах, кто как умеет.
Может, хватит глупость повторять?
В "полноценных" DE автомонтированием занимается всего лишь файловый менеджер. И никто не мешает это самый (или другой) ФМ запустить пол openbox в режиме десктопа или демона. И если, например, я этого не делаю, то не по религиознгым соображениям, а потому что мне вообще не нужен этот убогий ФМ, который и на 50% не имеет функциональности mc. А "полноценную" DE я не ставлю тоже не по религиозным соображениям, а потому что хочу иметь большее удобство, чем дают все эти DE. В своё время, я и под KDE посидел, и под Гномом, не говоря уже об OS/2 и винде, имею с чем сравнивать.
Natrio
akorop, возможно, ваша проблема в "номере" правила. Насколько я понимаю, правила udev выполняются процессом по порядку. Если ваше правило номер 14 выполняется раньше того, которое создаёт переменную, то разумеется, оно ничего в ней не найдёт.
Точно! Спасибо. Особо я не уточнял, но с номером 64 переменные работают.
elsonador
Потому что люди по религиозным, вероятно, соображениям не хотят ставить себе полноценную desktop environment
Не по религиозным, а потому что система способна выполнять указанные операции безо всяких DE/ФМ. И решение штатными средствами саоме надежное, без упования на "умный" ФМ
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
 
Зарегистрироваться или войдите чтобы оставить сообщение.