আমি জানি যে সিস্টেমেড সার্ভিস কনফিগারেশন / আচরণকে প্রভাবিত করার জন্য প্যাকেজ সরবরাহকৃত ইউনিট ফাইলকে ওভাররাইড করার জন্য একটি দুর্দান্ত প্রক্রিয়া সরবরাহ করে। এটি সাধারণত নীচের কমান্ডটি ব্যবহার করে করা হয়
sudo systemctl edit <unitfile>
একটি ওভাররাইড কনফারেন্স ফাইল তৈরি করতে
/etc/systemd/system/<unitfile.d>/
সিস্টেমেড একটি টেম্পলেট ইউনিট ফাইল সংজ্ঞায়িত করার জন্য একটি পৃথক প্রক্রিয়াও সরবরাহ করে এবং রানটাইমের ক্ষেত্রে উদাহরণ-নির্দিষ্ট ইউনিট তৈরি করার জন্য এটি ইনস্ট্যান্টিয়েট করে। এই হিসাবে টেমপ্লেট ফাইল নামকরণ প্রয়োজন
<servicename>@.service
এবং তারপরে এটি ইনস্ট্যান্ট করা
systemctl start <servicename>@<instancename>
এখন, আমার একটি পরিস্থিতি রয়েছে যেখানে আমি একাধিক ইউনিট উদাহরণ হিসাবে প্যাকেজ সরবরাহিত পরিষেবা চালাতে চাই। আমি আমার নিজস্ব টেম্পলেট ইউনিট ফাইল তৈরি করা এড়াতে চাই, তাই আমি চেষ্টা করছি যে প্যাকেজ-সরবরাহিত ইউনিট ফাইলটি টেমপ্লেট ইউনিট ফাইল তৈরি করতে ওভাররাইড করা যায়।
যেহেতু, আমার উপলব্ধি অনুসারে, টেম্পলেট ইউনিট ফাইলটির একটি নামকরণ কনভেনশন রয়েছে যা নিয়মিত ইউনিট ফাইলের চেয়ে পৃথক, তাই আমি মনে করি যে আমি প্যাকেজ-সরবরাহিত ইউনিট ফাইলটিকে / etc / systemd / সিস্টেমে টেমপ্লেট ফাইলের সাথে ওভাররাইড করতে পারি না।
আমি যা করার চেষ্টা করছি তা অর্জন করার কোনও নির্ধারিত উপায় আছে?
নির্দিষ্ট পরিস্থিতি: গ্রাফানা প্যাকেজটি একটি গ্রাফানা-সার্ভার. সার্ভিস ইউনিট ফাইল ইনস্টল করে। আমি আমার মেশিনে গ্রাফানার দুটি উদাহরণ চালাতে চাই - একটি ডিইভি এবং এসটিজির জন্য একটি। আমি এটি করতে সক্ষম হয়েছি:
- গ্রাফানা-সার্ভার. সার্ভিস ফাইলটি সংশোধন করুন (ফোল্ডারের অবস্থান এবং ফাইলের পাথ সেট করতে% I ব্যবহার করে)
- পরিবর্তিত গ্রাফানা-সার্ভার.সার্ভিসকে গ্রাফানা-সার্ভার @ .সার্ভিসে নতুন নামকরণ করুন
গ্রাফানার উদাহরণগুলি ব্যবহার করে শুরু করুন:
sudo systemctl start grafana-server@dev
এবং
sudo systemctl start grafana-server@stg
যাইহোক, এটি গ্রাফানা প্রদত্ত পরিষেবা ইউনিট ফাইলের লিঙ্কটি ভেঙে দেয় এবং আমি আপগ্রেড করার সময় যদি তারা পরিষেবা ফাইলটি বাড়ায় তবে আমার এই ক্রিয়াকলাপটি আবারও করতে হবে। আমার উদ্দেশ্য হ'ল এই প্রত্যক্ষ নির্ভরতা এড়ানো এবং পরিবর্তে এটিকে ওভাররাইড নির্ভরতাতে রূপান্তর করা।
কোন চিন্তা?