अगर एक udv नियम को निकाल दिया जाए तो कैसे जांचें?


13

मैं Ubuntu 13.10 के तहत udev के साथ खुद को परिचित करने की कोशिश कर रहा हूं।

यहां मेरा पहला सरल 95.usbbackup.rules नियम है:

ACTION=="add", SUBSYSTEMS="usb", RUN+="/usr/local/bin/my_backup.sh"

और यहाँ स्क्रिप्ट है (जिसे chmodded + x किया गया है) my_backup.sh:

#!/bin/bash
touch /tmp/test

जब मैं बाहरी ड्राइव में प्लग करता हूं तो कुछ भी नहीं होता है। यदि नियम निकाल दिया जाए तो मैं कैसे जांच कर सकता हूं (एक लॉग, एक कमांड, कुछ भी)?

बहुत बहुत धन्यवाद


2
मुझे लगता है कि आपका मतलब है SUBSYSTEMS=="usb"। यानी डबल ==जो एकल के बजाय समानता के लिए परीक्षण =करता है जो एक कुंजी को एक मूल्य प्रदान करता है।
लेक्वेर्विग

जवाबों:


6

मुझे पूरा यकीन है कि इसे काम करना चाहिए। क्या आपने अपने नियमों को संपादित करने के बाद अपने udv नियमों को फिर से लोड किया?

udevadm control --reload-rules && udevadm trigger जड़ के रूप में।


मैंने एक संकरा नियम बनाया: KERNEL == "sdb", जो काम करता है। क्या udv केवल कुछ हार्डवेयर की पहचान करने वाले नियमों का व्यवहार करता है?
पौज़लर

नहीं, कोशिश करो KERNEL!="sdz*"और आपको सब कुछ मिल जाना चाहिए (sdz [1-9] को छोड़कर)
Redsandro

2
यह वास्तव में सवाल का जवाब नहीं देता है। आपको कैसे पता चलेगा कि नियम ट्रिगर हो गए हैं?
डैनियलस्क

तुम्हें पता है क्योंकि स्क्रिप्ट चलाया जाता है। आप इसे लॉगफाइल में लिख सकते हैं। इसके अलावाudevadm monitor
रेडसेंड्रो

3

आप इस तरह से रूट के रूप में एक कमांड दे सकते हैं:

udvadm मॉनिटर

यह दिखाएगा कि किसी नियम ने कब फायर किया।


5
udevadm monitorसिर्फ udev घटनाओं को दिखाता है, लेकिन नहीं अगर एक इसी नियम को निकाल दिया गया था। हालाँकि, आप उस ईवेंट को देख सकते हैं जिसमें नियम को ट्रिगर किया जाना चाहिए, लेकिन तब आपको नहीं पता कि आपका नियम काम करता है या नहीं।
एफ। रैब

2

मैं कर्नेल 3.0.35 चला रहा हूं, लेकिन निम्नलिखित मेरे लिए काम करता है।

डिवाइस के लिए पथ प्राप्त करने के लिए आप कुछ इस तरह से कर सकते हैं:

udevadm info --name /dev/sda1 --query all

आपको जरूरत से ज्यादा जानकारी मिलेगी लेकिन आप DEVPATH में रुचि रखते हैं। फिर यह देखने के लिए कि आपके द्वारा चलाए जाने वाले नियम क्या हैं:

udevadm test DEVPATH

मुझे नहीं लगता कि यह वास्तव में नियमों को निष्पादित करता है, प्रलेखन कहता है कि यह दिए गए डिवाइस के लिए घटनाओं का 'अनुकरण' करता है। अधिक जानकारी प्राप्त करने के लिए, इस आदमी पृष्ठ को देखें: https://www.freedesktop.org/software/systemd/man/udegadman.html


0

मैं रास्पबेरी पाई 3 बी + के साथ एक ही समस्या थी। मैं USB संग्रहण डिवाइस सम्मिलित करने पर एक स्क्रिप्ट लागू करने का प्रयास कर रहा था। नियमों को syslog में लॉग इन नहीं किया जाता है, इसलिए यह समझना बहुत मुश्किल हो जाता है कि किस नियम ने काम किया या कौन सा नियम विफल रहा।

इसलिए मैंने निम्नलिखित कार्य किया:

  1. मैंने /etc/udev/rules.d/100-myrule.rules में अपनी नियम फ़ाइल बनाई
  2. फिर मैंने कमान चलाई sudo /etc/init.d/udev restart

और जब मैंने जाँच की, तो यह काम कर गया।

जानकारी का एक टुकड़ा, जो उपयोगी हो सकता है या नहीं भी हो सकता है, यह है कि फाइलसिस्टम udv के लिए आसानी से पढ़े जाते हैं जब तक कि चरण 2 में कमांड निष्पादित नहीं होती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.