जब मैं अपने लिनक्स मशीन में एक उपकरण में प्लग करता हूं, तो मैं एक स्क्रिप्ट निष्पादित करना चाहता हूं। उदाहरण के लिए, xinput
एक निश्चित ड्राइव पर माउस या बैकअपस्क्रिप्ट पर चलाएं।
मैं सबसे हाल ही में इस पर लेख का एक बहुत कुछ देखा है, यहाँ और यहाँ । लेकिन मैं अभी काम नहीं कर सकता।
यहां कुछ सरल उदाहरण हैं जो कम से कम किसी प्रकार की प्रतिक्रिया प्राप्त करने की कोशिश कर रहे हैं।
/etc/udev/rules.d/test.rules
#KERNEL=="sd*", ATTRS{vendor}=="*", ATTRS{model}=="*", ATTRS{serial}=="*", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=="add", "SUBSYSTEM=="usb", ATTRS{model}=="My Book 1140 ", ATTRS{serial}=="0841752394756103457194857249", RUN+="/usr/local/bin/test.sh"
#ACTION=="add", "SUBSYSTEM=="usb", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=={add}, RUN+="/usr/local/bin/test.sh"
KERNEL=="sd*", RUN+="/usr/local/bin/test.sh"
KERNEL=="*", RUN+="/usr/local/bin/test.sh"
/usr/local/bin/test.sh
#!/usr/bin/env bash
echo touched >> /var/log/test.log
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
then
echo ${DEVICE} >> /var/log/test.log
fi
नियम फ़ोल्डर द्वारा देखा जाता है inotify
और तुरंत सक्रिय होना चाहिए। मैं अपने कीबोर्ड, माउस, टैबलेट, मेमोरीस्टिक और यूएसबी-ड्राइव की भरपाई करता रहता हूं, लेकिन कुछ भी नहीं। कोई लॉग फ़ाइल नहीं छुआ।
अब, कम से कम यह जानने का सबसे सरल तरीका क्या होगा कि कुछ काम कर रहा है? किसी ऐसी चीज़ से काम करना आसान है जो किसी ऐसी चीज़ से काम कर रही है जो नहीं है।
3.5.0-23-generic
।
udevadm trigger
नया नियम लागू करने के लिए एक उपकरण चलाया या प्लग किया?