Gdy pojawi się nowe urządzenie, udev jest powiadamiany. Zwykle tworzy plik urządzenia w /devoparciu o wbudowane reguły¹. Możesz zastąpić te reguły, aby zmienić lokalizację pliku urządzenia lub uruchomić dowolny program. Oto przykładowa taka zasada udev:
NAME=Dyrektywa zmienia lokalizację pliku urządzenia, włączyłem go do celów ilustracyjnych, ale nie jest to użyteczne dla przypadku użycia. Te ATTRSzasady identyfikacji urządzenia; uruchom, udevinfo -a -n /dev/sdzgdy dysk będzie dostępny, /dev/sdzaby zobaczyć, jakie ma atrybuty. Uważaj, że możesz używać ATTRSreguł tylko z jednej sekcji danych udevinfowejściowych (dodatkowo możesz używać ATTRreguł z sekcji początkowej). Zobacz Zrozumienie wyniku działania `udevadm info -a -n / dev / sdb`, aby uzyskać więcej tła. Ta reguła przechodzi do pliku o nazwie coś takiego /etc/udev/rules.d/local-storage-keypass.rules.
Umieść polecenia, które chcesz uruchomić, w skrypcie podanym w RUNdyrektywie. Coś jak:
#!/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' &
Ważna uwaga na ten temat: pisząc reguły z wykorzystaniem informacji z udevadm info -a -n /dev/sdX, nie można dopasowywać na podstawie wielu przodków. Możesz dopasować tylko na podstawie danych z samego urządzenia i jednego przodka. Jest to omówione man 7 udev, ale jest to mały komentarz, który można łatwo przeoczyć.
Patrick,
1
Najlepszym sposobem na to byłoby napisanie własnych reguł udev dla tego urządzenia. Niestety nie mogę udzielić żadnych wskazówek, jak to zrobić, ponieważ nigdy tego nie zrobiłem. Więc jeśli ktoś nie ma bardziej szczegółowej odpowiedzi, wyszukaj w Google „reguły udev” i poszukaj przykładów w / lib / udev. Twoje niestandardowe reguły udev powinny znaleźć się w /etc/udev/rules.d
udevadm info -a -n /dev/sdX
, nie można dopasowywać na podstawie wielu przodków. Możesz dopasować tylko na podstawie danych z samego urządzenia i jednego przodka. Jest to omówioneman 7 udev
, ale jest to mały komentarz, który można łatwo przeoczyć.Najlepszym sposobem na to byłoby napisanie własnych reguł udev dla tego urządzenia. Niestety nie mogę udzielić żadnych wskazówek, jak to zrobić, ponieważ nigdy tego nie zrobiłem. Więc jeśli ktoś nie ma bardziej szczegółowej odpowiedzi, wyszukaj w Google „reguły udev” i poszukaj przykładów w / lib / udev. Twoje niestandardowe reguły udev powinny znaleźć się w /etc/udev/rules.d
źródło