মুনির যা উল্লেখ করেছেন তা হ'ল আপনি কীভাবে তা করেন। মূলত আপনি একটি service
ফাইল তৈরি করেন এবং এটি 30 বার শুরু করেন। এখন এটি কিছুটা অস্বাস্থ্যকর বলে মনে হতে পারে তবে এর সুবিধাগুলি রয়েছে যেমন খারাপ ব্যবহার করা হলে তাদের মধ্যে একটি বন্ধ করে দিতে সক্ষম হওয়া এবং সেগুলি বন্ধ করে দিতে হবে না। পরিচালনা সহজ করার জন্য আপনি করতে পারেন এমন কিছু জিনিসও রয়েছে।
প্রথমত, ইউনিট ফাইল। যেমন একটি ফাইল তৈরি করুন /etc/systemd/system/test@.service
। গুরুত্বপূর্ণ বিট @
প্রতীক।
এটির বিষয়বস্তুগুলি দেখতে দেখতে এইরকম হতে পারে:
[Service]
ExecStart=/bin/sleep 600 %I
[Install]
WantedBy=multi-user.target
তারপর সহযোগে এটি আরম্ভ systemctl start test@1.service
, systemctl start test@2.service
।
যে প্রক্রিয়াগুলি চালু হবে সেগুলি দেখতে পাবেন:
root 17222 19 0 0.0 0.0 Ss 00:05 /bin/sleep 600 1
root 17233 19 0 0.0 0.0 Ss 00:02 /bin/sleep 600 2
লক্ষ্য করুন যে আপনি এটি শুরু %I
করার পরে যা কিছু রেখেছিলেন তার সাথে প্রতিস্থাপিত @
হয়ে গেছে।
আপনি সামান্য শেল-ফু দিয়ে সমস্ত 30 টি শুরু করতে পারেন:
systemctl start test@{1..30}.service
আপনি যে কোনো স্বাভাবিক SERVICE এর মতো বুটে সেগুলিকে সক্ষম করতে পারেন: systemctl enable test@1.service
।
এখন পরিচালনাটি সহজ করার জন্য আপনি যা করতে পারেন তার দ্বারা আমি কী বোঝাতে চাইছি: সম্ভবত আপনি test@{1..30}.service
সেগুলি পরিচালনা করার জন্য ব্যবহার করতে চান না । এটি কিছুটা অনস্বাস্থ্যের। পরিবর্তে আপনি আপনার পরিষেবার জন্য একটি নতুন লক্ষ্য তৈরি করতে পারেন।
এর সাথে তৈরি করুন /etc/systemd/system/test.target
:
[Install]
WantedBy=multi-user.target
তারপরে /etc/systemd/system/test@.service
এমনটি সামঞ্জস্য করুন যাতে এটি দেখতে লাগে:
[Unit]
StopWhenUnneeded=true
[Service]
ExecStart=/bin/sleep 600 %I
[Install]
WantedBy=test.target
সিস্টেমে পুনরায় লোড করুন systemctl daemon-reload
(কেবলমাত্র প্রয়োজনীয় যদি আপনি ইউনিট ফাইলটি সংশোধন করছেন, এবং এর পূর্ববর্তী সংস্করণটি এড়িয়ে যান না)। এবং এখন আপনি যে পরিষেবাগুলি পরিচালনা করতে চান তা সক্ষম করে নিন systemctl enable test@{1..30}.service
।
(আপনি পূর্বে পরিষেবাটি থাকা অবস্থায় সক্ষম করে থাকলে WantedBy=multi-user.target
নির্ভরতা পরিষ্কার করার জন্য প্রথমে এটি অক্ষম করুন)
আপনি এখন কি করতে পারেন systemctl start test.target
এবং systemctl stop test.target
, এবং এটি শুরু হবে / সব 30 প্রসেস বন্ধ।
এবং আবার আপনার যদি অন্য কোন ইউনিট ফাইল মত বুটে সক্ষম করতে পারবেন: systemctl enable test.target
।