কিভাবে কোন ফাইল বা ইনডোড systemd.path ইউনিট triggered কিভাবে জানতে?


6

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 */
      };

সুতরাং যদি systemd দেখানো পথে একটি পরিবর্তন দেখুন, থেকে কোন তথ্য পাওয়ার একটি উপায় আছে read(2) কমান্ড? উল্লেখযোগ্যভাবে আমি প্রয়োজন name[] কমান্ড একটি যুক্তি হিসাবে ব্যবহার করা হবে ExecStart= মধ্যে systemd.service(5) ইউনিট বিবৃতি।

[Service]
ExecStart=/usr/bin/command --file=$inotifyName

অবশ্যই আছে: আপনি প্রোগ্রাম সি করতে পারেন?
MariusMatutiae

নাঃ। শুধু ইঙ্গিত দিচ্ছে যে, যদি প্রোগ্রামটি অ্যান্টিফাই ব্যবহার করে তবে এটি অন্তর্ভুক্ত থাকতে পারে read(2)ইভেন্ট সঙ্গে কাজ করতে। সুতরাং systemd কিভাবে এটি ব্যবহার করে এবং আমি থেকে তথ্য ব্যবহার করতে পারেন read(2) একটি systemd ইউনিট ফাইল একটি পরিবর্তনশীল বা স্পেসিফিকার হিসাবে?
Tim

এটি একটি সি প্রোগ্রামের মধ্যে থেকে তাই করে: পঠন (2) একটি সিস্টেম সব, আপনি মানুষের মানুষ থেকে এটি পরীক্ষা করতে পারেন।
MariusMatutiae

আমি পড়তে জানি (2) একটি সিস্টেম কল। আমি পড়া (2) সঙ্গে কিছু করতে চান না। আমি একটি কমান্ড চালাতে চান systemd.service ফাইল, একটি দ্বারা triggered systemd.path ফাইল, যা ইনটিফাই এবং আমি ব্যবহার করে অনুমান এটা ভালো কিছু ব্যবহার করে read(2)। আমি একটি ফাইলের নাম ধারণকারী একটি স্ট্রিং প্রয়োজন যে ঘটনা যোগ অনুপ্রাণিত ExecStart একক ফাইল বিবৃতি।
Tim

2
আপনি কি খুঁজে পেয়েছেন? আমি পাশাপাশি একটি স্ক্রিপ্ট চলমান খুঁজছি।
CMCDragonkai
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.