Systemd एक निश्चित पथ गर्त की निगरानी को नियंत्रित करने वाली इकाई फाइलें प्रदान करता है systemd.path(5)
:। यदि फ़ाइल या निर्देशिका को देखे गए पथ में संशोधित किया systemd.service(5)
जाता है, तो उसे संगत कहा जाता है।
inotify(7)
मैन पेज के अनुसार :
यह निर्धारित करने के लिए कि कौन सी घटनाएं घटित हुई हैं, एक एप्लिकेशन रीड (2) एसटॉइल फ़ाइल डिस्क्रिप्टर से पढ़ता है। यदि अब तक कोई घटना नहीं हुई है, तो, एक अवरुद्ध फ़ाइल विवरणक मानकर, पढ़ें (2) तब तक अवरुद्ध हो जाएगा जब तक कम से कम एक घटना नहीं होती है (जब तक कि एक सिग्नल द्वारा बाधित नहीं होता है, जिस स्थिति में कॉल त्रुटि EINTR के साथ विफल हो जाती है; संकेत देखें (7) ))।
प्रत्येक सफल पढ़ा (2) एक बफर देता है जिसमें एक या एक से अधिक संरचनाएँ होती हैं:
struct inotify_event { int wd; /* Watch descriptor */ uint32_t mask; /* Mask of events */ uint32_t cookie; /* Unique cookie associating related events (for rename(2)) */ uint32_t len; /* Size of name field */ char name[]; /* Optional null-terminated name */ };
तो अगर सिस्टमड देखे गए मार्ग में बदलाव देखता है, तो क्या read(2)
कमांड से कोई डेटा प्राप्त करने का कोई तरीका है ? उल्लेखनीय है कि मैं जरूरत name[]
के लिए आदेश के लिए एक तर्क के रूप में इस्तेमाल किया जा करने के लिए ExecStart=
में systemd.service(5)
इकाई बयान।
[Service]
ExecStart=/usr/bin/command --file=$inotifyName
read(2)
ईवेंट के साथ काम करने के लिए शामिल हो सकता है । तो सिस्टमड इसका उपयोग कैसे करता है और क्या मैं read(2)
एक चर या स्पेसियर के रूप में सिस्टमड यूनिट फ़ाइल से डेटा का उपयोग कर सकता हूं ?