Инициирование действия, когда удельный объем соединен

На основе моего опыта я попробовал бы это:

  • Alt+F1 затем вход в систему, sudo telinit 3 (если это не попытка работы /sbin/telinit 3), и проверка, с которой это изменяется на уровень 3 runlevel это должно произвести что-то как 5 3 что означает, что текущий уровень выполнения 3 и прежде чем это было 5.

В случае, если это не работает, сделайте:

  • ps ax | grep X, и в выводе Вы видели бы PID количество процесса X, таким образом, необходимо уничтожить его с sudo kill -9 number где number PID количество процесса.
10
12.11.2012, 11:03
2 ответа

Когда новое устройство появляется, udev уведомляется. Это обычно создает файл устройств под /dev на основе встроенных правил ¹. Можно переопределить эти правила изменить местоположение файла устройств или запустить произвольную программу. Вот является образец таким правилом udev:

KERNEL=="sd*", ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="123456789", NAME="keepass/s%n", RUN+="/usr/local/sbin/keepass-drive-inserted /dev/%k%n"

NAME= директива изменяет местоположение файла устройств, я включал его в целях иллюстрации, но это, вероятно, не полезно для Вашего варианта использования. ATTRS правила определяют устройство; выполненный udevinfo -a -n /dev/sdz когда диск доступен как /dev/sdz видеть, что приписывает его, имеет. Остерегайтесь этого, можно только использовать ATTRS правила от единственного раздела udevinfo вход (кроме того, можно использовать ATTR правила от начального раздела). Посмотрите Понимают вывод 'udevadm информация-a-n/dev/sdb' для большего количества фона. Это правило входит в файл, названный чем-то как /etc/udev/rules.d/local-storage-keypass.rules.

Поместите команды, которые Вы хотите выполнить в сценарии, сданном RUN директива. Что-то как:

#!/bin/sh
set -e
if [ -d /media/keypass-drive ]; then
  [ "$(df -P /media/keypass-drive | awk 'NR==2 {print $1}')" = "$(df -P /media | awk 'NR==2 {print $1}')" ]
else
  mkdir /media/keypass-drive
fi
mount "$1" /media/keypass-drive
su ereon -c 'keypass2' &

При наличии затруднений при запущении программы GUI из сценария, инициированного от udev посмотрите, что я могу запустить графическую программу на рабочем столе другого пользователя как корень?

¹ Не в современных системах, где /dev находится на udevtmpfs.

8
27.01.2020, 20:03
  • 1
    Важное примечание по этому: При записи правил с помощью информации от udevadm info -a -n /dev/sdX, Вы не можете соответствовать на основе нескольких предков. Можно только соответствовать на основе данных из самого устройства и холостого предка. Это покрыто в man 7 udev, но маленький комментарий, легко пропущенный. –  Patrick 06.11.2013, 06:09

Лучший способ сделать это записал бы Ваше собственное udev правило (правила) для этого устройства. К сожалению, я не могу дать подсказки относительно того, как сделать это, поскольку я никогда не делал так. Таким образом, если у кого-то еще нет более подробного ответа, Google для 'udev правила' и взгляд в/lib/udev для примеров. Ваши пользовательские правила udev должны войти в/etc/udev/rules.d

1
27.01.2020, 20:03
  • 1
    Спасибо за информацию. Это, по крайней мере, сделает мои поиски более эффективными. –  ereOn 12.11.2012, 14:39

Теги

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