আমি কি সিস্টেমেড সার্ভিস হিসাবে প্রতীকী লিঙ্কটি ব্যবহার করতে পারি?


14

উদাহরণস্বরূপ, আমি নামক একটি সেবা আছে mysshd.serviceঅধীনে /usr/lib/systemd/system/ডিরেক্টরি। আমি কি একটি প্রতীকী লিঙ্ক তৈরি করতে পারি যেমন:

ln -s /usr/lib/systemd/system/mysshd.service /usr/lib/systemd/system/fool.service

যাতে আমি বোকা.সার্ভেসের সাথে যা কিছু করব তা প্রতিফলিত হবে mysshd.service( systemctl enable/disable start/stop fool.servce)?

আমার উদ্দেশ্য হ'ল স্থানীয় sshd পরিষেবাটি আমার নিজের sshd পরিষেবার প্রতীকী লিঙ্ক দ্বারা ওভাররাইট করা।


1
কেন আপনার পরিষেবা যুক্ত এবং সক্ষম এবং নেটিভ sshd পরিষেবাটি অক্ষম করবেন না?
ল্যামবার্ট

আমি চাই যে আমার সফ্টওয়্যারটি পূর্ববর্তী সংস্করণটির সাথে সামঞ্জস্যপূর্ণ যা একটি প্রতীকী লিঙ্ক /etc/init.d/ssh -> /etc/init.d/myssh ব্যবহার করেছে।
নিক

আমি আপনার অর্থটি ঠিক কী বোঝছি তা এখনও বুঝতে পারছি না তবে আপনার লাইন অনুসারে <quot> যাতে আমি বোকা.সার্ভেসের সাথে যা কিছু করি তা mysshd.service (সিস্টেমেটল সক্ষম / নিষ্ক্রিয় / স্টপ বোকা। নিষ্ক্রিয়) প্রতিফলিত হবে? </ উদ্ধৃতি > sshd- এর পরে আপনার পরিষেবা শুরু / সক্ষম করার জন্য আপনার সিস্টেমে নির্ভরতা ( উইকি.আরকলিনিক্স ডটকম / ইনডেক্স.এফপি / সিস্টেমেড 89 হ্যান্ডলিং_নির্ভরতা ) দেখুন ।
ল্যামবার্ট

স্ট্যাক এক্সচেঞ্জে @ নিক স্বাগত! স্ট্যাক এক্সচেঞ্জে উত্তরের মাধ্যমে উত্তরগুলির জন্য কুদোগুলি দেখানোর রেওয়াজ রয়েছে। আপনি উত্তরের বাম দিকে উপরের তীরটি ক্লিক করে এটি করতে পারেন। যদি আমার উত্তরটি আপনার সমস্যার সমাধান করে, আপনি চেকবক্সটি ক্লিক করে বিবেচনা করতে পারেন, এটি গ্রহণযোগ্য হিসাবে চিহ্নিত করতে। ধন্যবাদ!
strugee

উত্তর:


9

যতদূর আমি জানি, সিস্টেমড বিশেষত এটির সাথে ভাল আচরণ করবে না। আমি যেমন এটি বুঝতে পেরেছি, আপনি ঠিক তাই না করে আচরণকে ওভাররাইড করতে চান sshd.service?

ভাগ্যক্রমে আপনার জন্য, সিস্টেমড এই ধরণের জিনিসটির জন্য ডিজাইন করা হয়েছে। কেবল আপনার পরিষেবার সংজ্ঞাটি এতে রাখুন /etc/systemd/system/ssh.service, systemctl daemon-reloadইউনিট ফাইলগুলি পুনরায় লোড করতে কার্যকর করুন এবং সিস্টেমড স্বয়ংক্রিয়ভাবে সিস্টেমের পরিবর্তে সেই কনফিগারেশনটি ব্যবহার করবে ssh.service

systemctl enable mysshd.serviceকাজও করতে চান ? সমস্যা নেই. ইন [Install]আপনার ইউনিট ফাইলের অধ্যায়, একটি লাইন যে যোগ Alias=mysshd.service। তারপরে systemctl reenable ssh.serviceসিস্টেমে ইউনিট সিমলিংকগুলি ঠিক করার জন্য নির্বাহ করুন এবং আপনি সোনার।

এখন, আপনি কী করবেন mysshd.serviceসে সম্পর্কে বিশদটি জানাননি । এটি যদি স্বাভাবিকের থেকে সম্পূর্ণ আলাদা হয় তবে ssh.serviceদুর্দান্ত! উপরের পদ্ধতিটি ব্যবহার করুন। তবে আপনি যদি কেবল একটি ছোট জিনিস পরিবর্তন করতে চান তবে আপনি ভুল পদ্ধতির ব্যবহার করছেন। systemd আপনাকে ইউনিট ফাইলগুলির "স্নিপেটস" তৈরি করতে দেয় যা সাধারণ ইউনিটের ফাইলগুলির উপরে প্রয়োগ করা হবে। এটি আপনাকে ইউনিট ফাইলের বাকী অংশটিকে প্যাকেজ ম্যানেজারের কাছ থেকে আপডেট পাওয়ার অনুমতি দেওয়ার সময় স্বতন্ত্র নির্দেশিকা যুক্ত বা ওভাররাইড করতে দেয়। এটি করতে, কেবল তৈরি করুন /etc/systemd/system/ssh.d/my-custom-config.conf(আপনি my-custom-config.confযা খুশি তাই হতে পারেন এবং আপনার একাধিক ওভাররাইড ফাইলও থাকতে পারে)। সেই ফাইলে আপনি যে পরিবর্তনটি পরিবর্তন করতে চান বা যথারীতি যুক্ত করতে চান সেগুলি রাখুন ssh.service। আপনি এমনকি Alias=নির্দেশাবলী যোগ করতে পারেন , যাতে systemctl start mysshd.serviceকাজ করে! শুধু মৃত্যুদন্ড কার্যকর করতে হবেsystemctl daemon-reloadপরে আপনার কাজ সম্পন্ন হয় (এবং, যদি আপনি ব্যবহৃত Alias=, systemctl reenable ssh.service)।

একদিকে যেমন কখনও কখনও সিস্টেমড ইউনিট ফাইলগুলিতে পরিবর্তন করবেন না /usr/lib/systemd। কখনো! ফাইল সিস্টেম হায়ারার্কি স্ট্যান্ডার্ডের প্রয়োজন এটি /usrকেবল পঠনযোগ্য হিসাবে বিবেচিত হয়। অনুশীলনে, এর অর্থ হ'ল প্যাকেজ ম্যানেজার হ্যান্ডল করে /usr(ব্যতীত /usr/local), এবং আপনি প্যাকেজ ম্যানেজার যা পরিচালনা করেন তা স্পর্শ করেন না - বিশেষত কারণ আপনি যা পরিবর্তন করেন তা সম্ভবত শেষ পর্যন্ত ওভাররাইট হয়ে যাবে। পরিবর্তে, আপনার জিনিস অন্য কোথাও রাখুন /etc


1
এটি কিছুটা স্পষ্ট করার জন্য: আপনি যদি ওভাররাইড করতে চান তবে foo.serviceচালান sudo systemctl edit foo.serviceএবং এটি আপনার টাইপ করা যা কিছু সাশ্রয় করে /etc/systemd/system/foo.service.d/override.conf
রকাল্লাইট

এছাড়াও, Alias=ওভাররাইড ফাইলগুলিতে নির্দেশিকা কাজ করে না। দেখুন github.com/systemd/systemd/issues/1090
Rockallite

systemctl editআমি এই উত্তরটি লেখার সময় @ রোকলাইট সম্পর্কে জানত না । Alias=বাগটি প্রতিফলিত করতে আমার উত্তর সম্পাদনা করতে দ্বিধা বোধ করুন (সম্পাদনা বার্তায় "উত্তরদাতার সাথে ঠিক আছে" বা কিছু রাখুন)। ভালো বল ধরা.
স্ট্রুজি

5

linkপূর্ণ পথ সহ ব্যবহার করুন :

systemctl link /home/nick/myservice.service

মনে রাখবেন যে আপনি নিজের মধ্যে থাকা কোনও পরিষেবা ফাইলটিকে ইতিমধ্যে একটি লিঙ্ক লিঙ্ক করতে পারবেন না।


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