সিস্টেমেড-নেটওয়ার্কডের সাথে, নেটওয়ার্ক কনফিগারেশন পরিবর্তনের পরে একটি ক্রিয়া সম্পাদন করুন


10

আমি ডেবিয়ান এর থেকে সুইচিং করছি ifupdownকরার systemd-networkd, এবং এটি বেশিরভাগ কাজ করে জরিমানা। একটি অনুপস্থিত বিট হ'ল প্রতিটি নেটওয়ার্ক পরিবর্তনের পরে, আমি কল করতে চাই killall -ARLM tinc, যাতে আমার ভিপিএন সময়োপযোগীভাবে এগিয়ে চলেছে।

না systemdবা systemd-networkdএই ধরনের কার্যকারিতা প্রদান? আমি কীভাবে এটি ব্যবহার করব?

উত্তর:


3

আমি networkd-dispatcherইন্টারফেসের স্থিতি পরিবর্তনের পরে ইভেন্টগুলি চালাতে ব্যবহার করছি :

সিস্টেমড-নেটওয়ার্কযুক্ত সংযোগের স্থিতি পরিবর্তনের জন্য নেটওয়ার্কড-ডিসপ্যাচার একটি প্রেরণকারী ডেমন। এই ডেমনটি নেটওয়ার্ক-ম্যানেজার-প্রেরকের মতো, তবে সিস্টেমড-নেটওয়ার্কযুক্ত সীমাবদ্ধ প্রকৃতির কারণে এটি যে ধরণের ইভেন্টগুলি সমর্থন করে তাতে অনেক বেশি সীমাবদ্ধ।

গিটল্যাবের লিঙ্ক


এটি ডেবিয়ান 10 (বুস্টার) এর অন্তর্ভুক্ত।
জন একেনবেরি

2

টিনকে সরাসরি সংকেত প্রেরণের পরিবর্তে সিস্টেমড ইউনিট হিসাবে আপডেট করা উচিত। এই এক চাহিদা তাদের ইউনিট ফাইল কনফিগার করার অর্জন উপযুক্ত সঙ্গে শৃঙ্খলিত করা Require=, Before=এবং After=মধ্যে লাইন [Unit]অধ্যায়। আপনি WantedBy=নেটওয়ার্ক পরিষেবাদির জন্য সঠিকটি সেট করেছেন তাও নিশ্চিত করুন। (অর্থাত। WantedBy={ network.target, network-online.target, network-pre.target} পরিবর্তে multi-user.target)

এটি systemctl restart systemd-networkd.serviceআপনার নেটওয়ার্ক পুনরায় আরম্ভ করতে কার্যকর করতে অনুমতি দেয় । এর সাথে সংযুক্ত systemd-resolvd, udev/ dbus( wpa_supplicant@nic.serviceযখন ওয়াইফাই থাকে তখন) এবং কারও নেটওয়ার্ক ঠিক কাজ করে।

সিস্টেমড-নেটওয়ার্কড এবং ইউনিট নির্ভরতাগুলিতে স্যুইচিং সম্পর্কিত নিবন্ধগুলি পড়তে ভুলবেন না । প্রশাসক নির্দেশিকার জন্য সিস্টেমডে নথিভুক্ত কমান্ডের systemd.serviceমাধ্যমে আপনার ইউনিটগুলিতে সিগন্যাল প্রেরণেরও এটি একটি উপায়systemctl kill


আমি আসলে অনুসরণ করি না সুতরাং যদি টিঙ্কটি সিস্টেমড পরিষেবা হিসাবে চালিত হয় তবে আমি systemctl killসংকেত সরবরাহ করতে ব্যবহার করতে পারি । তবে কোনও নেটওয়ার্ক কনফিগারেশন পরিবর্তনে কীভাবে এটি ট্রিগার করা যায় তা আমি দেখছি না।
জোয়াকিম ব্রেটনার

আপনি কেবলমাত্র টার্গেট এবং সম্পর্কের উপর নির্ভরশীলতা সিস্টেমডের সিগন্যাল ব্যবহার করবেন না। এইভাবে আপনার নেটওয়ার্ক ইন্টারফেসটি একবারে এই সংকেতটি (অভ্যন্তরীণভাবে সিস্টেমেড থেকে) সক্রিয় করার network.targetপরে network-online.targetসেই ইউনিটটি সরিয়ে দেওয়ার জন্য অন্যান্য নির্ভরতাগুলি । সুতরাং কেবল tinc.serviceঅন্তর্ভুক্ত করুন Requires=systemd-networkd.serviceএবং WantedBy=network-online.targetতারপরে যখন সিস্টেমড-নেটওয়ার্কযুক্ত কিকগুলি বন্ধ করে দেয় যা আপনার নিক এবং টিউন ইন্টারফেসটি আনবে, একটি আইপি ঠিকানা স্থাপন করবে এবং তারপরে প্রয়োজনীয়তার সাথে পুনরায় আরম্ভ করতে সংযোগের সংকেত দেবে।
ডুইট স্পেন্সার

আমিও কোনও পরিষেবা পুনরায় চালু করতে ট্রিগার করার উপায় খুঁজে পাইনি, কারণ নেটওয়ার্ক-অনলাইন.টারাগেট সংযোগ বিচ্ছিন্ন করা বন্ধ করে না (আসলে এটির জন্য একটি বাগ রিপোর্ট ফাইল করা উচিত ...)। আমি একটি / etc/ নেটওয়ার্ক ম্যানেজার / ডিসপাচার.ডি / স্ক্রিপ্টের আশ্রয় নিয়েছিলাম যা এতে রয়েছেcase "$2" in up|connectivity-change) if /usr/bin/nm-online -qx; then systemctl reload autossh.service fi;; esac
eMPee584

1
আমি এটি মজাদার বলে মনে করি যে আপনি সেই ব্যক্তির লিখিত একটি নিবন্ধের সাথে লিঙ্ক করেছেন যার প্রশ্নের উত্তর আপনি দিচ্ছেন। :) অবশ্যই এটি উত্তরটির পরবর্তী পাঠকদের জন্য সহায়ক তবে এটি এখনও মজার।
ওয়াইল্ডকার্ড

1

এটি বর্তমানে সম্ভব নয়। তবে আপনি systemd-networkd-wait-online.serviceপুনরায় কনফিগার করতে বুটের উপর নির্ভরতা হিসাবে ব্যবহার করতে পারেন । আমার অভিজ্ঞতায় টিং নেটওয়ার্ক কনফিগারেশনের পরিবর্তনের বিষয়ে দ্রুত প্রতিক্রিয়া জানাবে। অন্তত লিনাক্সে এটি ইন্টারফেসের পরিবর্তনের জন্য rtnetlink ব্যবহার করতে পারে।

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