আমি যখন আমার লিনাক্স মেশিনে কোনও ডিভাইস প্লাগ ইন করি তখন আমি একটি স্ক্রিপ্ট কার্যকর করতে চাই। উদাহরণস্বরূপ, 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নতুন নিয়ম প্রয়োগ করতে কোনও ডিভাইস চালনা বা প্লাগ ইন করেছেন?