जब कोई नया उपकरण दिखाई देता है, तो 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' &
यदि आपको udev से शुरू की गई स्क्रिप्ट से GUI प्रोग्राम चलाने में समस्या हो रही है, तो क्या मैं रूट के रूप में किसी अन्य उपयोगकर्ता के डेस्कटॉप पर ग्राफ़िकल प्रोग्राम लॉन्च कर सकता हूं?
¹ आधुनिक सिस्टम पर नहीं जहां /dev
udvtmpfs पर है।
udevadm info -a -n /dev/sdX
, तो आप कई पूर्वजों के आधार पर मेल नहीं खा सकते हैं। आप केवल डिवाइस से डेटा, और एकल पूर्वज पर आधारित मिलान कर सकते हैं। यह कवर किया गया हैman 7 udev
, लेकिन आसानी से अनदेखी की गई एक छोटी टिप्पणी है।