সিস্টেমডে 'লিঙ্কযুক্ত' ইউনিট ফাইলগুলি সক্ষম করা


10

আমি এখনও সিস্টেমেডের সাথে আঁকড়ে ধরছি এবং কিছুটা ছড়িয়েছি। এটি এতটা সমস্যা নয় তবে আমি কীভাবে এই উপায়টি সম্পর্কে আরও জানতে চাই। আমি এর অন্য কোথাও কোনও রেফারেন্স পাইনি।

প্রথমে, আমি বুঝতে পারি যে পরিষেবার জন্য কাস্টম ইউনিট ফাইলগুলি প্রবেশ করা উচিত /etc/systemd/system। তবে, ইউনিট ফাইলগুলি অন্য কোথাও অবস্থিত হতে পারলে আমাদের সার্ভারগুলি পরিচালনা করার জন্য এটি দুর্দান্ত be

ডকুমেন্টেশনে, আমি দেখেছি আপনি ইউনিট ফাইলগুলিকে 'লিঙ্ক' করতে পারেন:

systemctl link /path/to/servicename.service

এটি উপরের ইনটির একটি লিঙ্ক তৈরি করবে /etc/systemd/system। আপনি এখন এই পরিষেবাটি শুরু / বন্ধ করতে সক্ষম হন। পৃষ্ঠতলে, এটি আমাদের পরিষেবাগুলি পরিচালনা করার জন্য আমাদের পক্ষে ভাল উপায় বলে মনে হয়েছিল।

তবে, এই জাতীয় 'লিঙ্কযুক্ত' ইউনিট ফাইল সক্ষম করার চেষ্টা ব্যর্থতায় ফলাফল:

root@test1:/etc/systemd/system# systemctl link /root/myservice.service 
Created symlink from /etc/systemd/system/myservice.service to /root/myservice.service.

root@test1:/etc/systemd/system# systemctl status myservice.service 
 * myservice.service - My Test Service
     Loaded: loaded (/root/myservice.service; linked; vendor preset: enabled)

root@test1:/etc/systemd/system# systemctl enable myservice.service
Failed to execute operation: No such file or directory

ঠিক একই ইউনিট ফাইলটি ব্যবহার করে, তবে /etc/systemd/systemলিঙ্কযুক্তের পরিবর্তে অনুলিপি করা, আপনি পাবেন:

root@test1:/etc/systemd/system# cp -p /root/myservice.service .

root@test1:/etc/systemd/system# systemctl daemon-reload 

root@test1:/etc/systemd/system# systemctl status myservice.service 
 * myservice.service - My Test Service
     Loaded: loaded (/etc/systemd/system/myservice.service; disabled; vendor preset: enabled)

root@test1:/etc/systemd/system# systemctl enable myservice.service
Created symlink from /etc/systemd/system/multi-user.target.wants/myservice.service to /etc/systemd/system/myservice.service.

এটি থেকে মনে হয়, সিস্টেম স্টার্টআপে কল করার জন্য ইউনিট ফাইলগুলিতে লিঙ্ক করা সক্ষম করা সম্ভব নয়।

যদি এটি হয় তবে 'লিঙ্ক' কার্যকারিতাটির বিন্দুটি কী? দস্তাবেজগুলি থেকে, এটি বলে:

লিঙ্ক FILENAME

ইউনিট ফাইল অনুসন্ধানের পথগুলিতে ইউনিট ফাইল অনুসন্ধানের পথে নেই এমন একটি ইউনিট ফাইল লিঙ্ক করুন। এটির জন্য ইউনিট ফাইলের নিখুঁত পথ প্রয়োজন। এর প্রভাব অক্ষম দিয়ে পূর্বাবস্থায় ফেলা যায়। এই কমান্ডটির প্রভাব হ'ল একটি ইউনিট ফাইল শুরু এবং অন্যান্য কমান্ডের জন্য উপলব্ধ যদিও এটি ইউনিট অনুসন্ধানের পথে সরাসরি ইনস্টল করা হয়নি।

উত্তর:


15

ম্যান পেজটি বিভ্রান্ত করছে।

systemctl link /root/myservice.service

systemctl enable /root/myservice.service

প্রথমটি আপনার পক্ষে এটি সম্ভব করে তোলে systemctl start myservice। দ্বিতীয়টি myserviceস্বয়ংক্রিয়ভাবে শুরু করা সম্ভব করে (যা @ জুলিয়ান উল্লেখ করেছেন, স্বয়ংক্রিয়ভাবে এটিকে যুক্ত করে link)।

আমার মনে হয় ... আমি সারাদিন এদিকে মাথা জড়িয়ে দেওয়ার চেষ্টা করে যাচ্ছি।


1
লক্ষ্য করুন যে systemctl enableএটিও করবে systemctl link, সুতরাং 2 কমান্ড টাইপ করার দরকার নেই ;-)
জুলিয়েন

@ জুলিয়েন ওহ, আমি যখন আপনি গত বছর এটি লিখেছিলেন :-) আমি মনে করি আমি শেষ পর্যন্ত বুঝতে পেরেছিলাম!
অস্পেক্স

আমি মনে করি খুব কম লোকই এ সম্পর্কে জানেন। তোমাকে অনেক ধন্যবাদ!
কাইল

10

ডিফল্ট পাথের চেয়ে অন্য পথ থেকে কোনও পরিষেবা সক্ষম করার সময় আপনার পুরো পথটি ব্যবহার করা উচিত। সক্ষম আপনার জন্য লিঙ্কটি তৈরি করবে:

systemctl enable /root/myservice.service

একবার সক্ষম হয়ে গেলে আপনি পরিষেবার নাম দিয়ে / থামাতে / স্থিতি করতে পারেন

systemctl start myservice

এখানে কয়েকটি সতর্কতা:

  • আপনি নিজের মধ্যে ইতিমধ্যে একটি লিঙ্ক থাকা কোনও পরিষেবা ফাইল সক্ষম করতে পারবেন না
  • নিশ্চিত করুন যে পথটি একই মাউন্টড ডিস্কে রয়েছে। যদি এটি না হয় তবে সিস্টেমড বুট-এ সার্ভিস ইউনিট ফাইলগুলি লোড করতে সক্ষম হবে না কারণ ডিস্কটি এখনও মাউন্ট হবে না এবং ফাইলগুলি খুঁজে পাওয়া যাবে না। ( মাউন্টড ডিস্কে সিস্টেমযুক্ত সংযুক্ত ইউনিট ফাইলগুলি লোড করতে ব্যর্থ দেখুন )
  • সিস্টেমেড বাগের কারণে আপনি একটি ইউনিট ফাইল থেকে অযোগ্য স্ট্যান্ডার্ড পাথের উদাহরণগুলি সক্ষম করতে পারবেন না (দেখুন https://github.com/systemd/systemd/issues/661 )
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.