"Systemctl মুখোশ" এবং "systemctl অক্ষম" এর মধ্যে পার্থক্য কী?


35

আমি বুট আপ করার সময় প্লাইমাথ পরিষেবাগুলি অক্ষম করে আমার উবুন্টু জিনোম 16.04 এর বুট সময়টি উন্নত করতে চাই। এটি বিভিন্ন ওয়েবসাইটে কীভাবে করা যায় সে সম্পর্কে আমি দুটি উত্তর পেয়েছি:

# systemctl disable plymouth-quit-wait.service 
# systemctl mask plymouth-quit-wait.service 

আমি তাদের উপরের দুটি কার্যকর করতে পারি না যদি না আমি জানি তারা কী করে।


4
এখানে একটি পড়ুন fedoramagazine.org/systemd-masking-units
রিনজউইন্ড

উত্তর:


52

যদি কোনও পরিষেবা থাকে enabledতবে কোথাও কোথাও একটি সিমিলিংক রয়েছে

/etc/systemd/system

একটি ইউনিট ফাইলে, প্রায়শই কোথাও কোথাও

/lib/systemd/system

সহায়কভাবে, আপনি যখন enableকোনও পরিষেবা করবেন তখন তৈরি লিঙ্ক এবং টার্গেটের পুরো পথগুলি স্টডআউটে মুদ্রিত হবে।

পরিষেবাটি অক্ষম করার ফলে সিমলিংক মুছে ফেলা হয়, সুতরাং ইউনিট ফাইলটি নিজেই ক্ষতিগ্রস্থ হয় না, তবে সিস্টেমটি পড়লে পরিষেবাটি পরবর্তী বুটে লোড হয় না /etc/systemd/system

তবে প্রতিবন্ধী সেবা করতে লোড করা, এবং শুরু করা হবে যদি একটি পরিষেবা যা এর উপর নির্ভর করে শুরু হয় ; enableএবং disableইউনিটগুলির জন্য কেবল অটো-স্টার্ট আচরণটি কনফিগার করে এবং রাষ্ট্রটি সহজেই ওভাররাইড করা হয়।

একটি মুখোশধারী পরিষেবাটি হ'ল যার ইউনিট ফাইলটি সিলেমিংক /dev/null। এটি পরিষেবাটি লোড করা "অসম্ভব" করে তোলে, এমনকি যদি এটি অন্যর জন্য সক্ষম, পরিষেবার প্রয়োজন হয়।

আপনি যখন maskকোনও পরিষেবা করেন, মূল ইউনিট ফাইলটি অন্য কোথাও ছোঁয়া রেখে অন্যদিকে একটি সিমিলিংক তৈরি করা /etc/systemd/systemহয় /dev/null। আপনি যখন unmaskকোনও পরিষেবা করেন তখন সিমিলিংক মোছা হয়।

তবে আমি লক্ষ্য করেছি যে এই আদেশগুলি সর্বদা সম্মানিত হয় না।

যখন আমি বেশিরভাগ পরিষেবাগুলিকে মুখোশ দেওয়ার চেষ্টা করি তখন এটি ব্যর্থ হয়:

$ sudo systemctl mask bluetooth.service
Failed to execute operation: Invalid argument

অবশ্যই, আমি পরিষেবাটি প্রথমে বন্ধ করে দিয়েছি। @ আনোয়ার পরামর্শ দিয়েছেন যে মাস্কিং কেবলমাত্র অ-সমালোচনামূলক পরিষেবার জন্যই সম্ভব।

কোনও মুখোশধারার পরিষেবাটি আনমাস্কিং করা, যদি না আমি নিজে এটি মুখোশ করি, ব্যর্থও হয় (নিঃশব্দে)। আমি বিশ্বাস করি এই হল সেবা যে কোন জায়গায় কোন ইউনিট ফাইল না থাকায় করার জন্য একটি সিমবলিক লিঙ্ক আকারে ছাড়া, /dev/nullএই সময়, /lib/systemd/system:

$ file $(locate fuse.service)
/lib/systemd/system/fuse.service: symbolic link to /dev/null
$ sudo systemctl unmask fuse.service
$ systemctl status fuse
● fuse.service
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)

আমি একমাত্র এই সমস্যাটি করছি না

আসলে ছদ্মবেশী সেবা X11-সাধারণ মুখোশ খুলে ফেলা, আমি করতে সিমবলিক লিঙ্ক মুছে ফেলতে ছিল /dev/nullএবং sudo apt-get install --reinstall x11-common && sudo systemctl daemon-reload। এখন আমি যখন এটির সাথে জিজ্ঞাসা করি তখন systemctl status x11-commonদেখি পরিষেবার একটি দুর্দান্ত সবুজ বৃত্ত রয়েছে এবং এটি কোনও ইউনিট ফাইল না থাকলেও লোড এবং অ্যাক্টিভ (প্রস্থান)।

আরও রেফারেন্সের জন্য সিস্টেমট্যাক্টেল কীভাবে ব্যবহার করবেন সে সম্পর্কে এই নিবন্ধটি কিছুটা কার্যকর হতে পারে।


1
হুম, আমি পেয়েছি systemctl status x11-common ● x11-common.service Loaded: masked (/dev/null; bad) Active: inactive (dead)। এটা কি খারাপ? তবে আমি ডেবিয়ানে আছি, উবুন্টু নয়। যাইহোক, দুর্দান্ত ব্যাখ্যা। ধন্যবাদ.
ফাহিম মিঠা

@ ফাহিমমিঠা আমি নিশ্চিত যে পরিষেবাটি প্রয়োজন - আমার সিস্টেমটি এটি ছাড়া কাজ করবে বলে মনে হয়। যদিও ডেবিয়ানের সাথে অভিজ্ঞতা নেই, দুঃখিত!
Zanna

17

এটা বেশ সহজ।

  • systemctl start, systemctl stop: অবিলম্বে প্রশ্নে ইউনিট শুরু (থামিয়ে দেয়) ;
  • systemctl enable, systemctl disable: বুট সময়ে অটোস্টার্টের জন্য ইউনিট চিহ্নিত করে (চিহ্নহীন) (ইউনিট-নির্দিষ্ট পদ্ধতিতে, এর [Install]বিভাগে বর্ণিত );
  • systemctl mask, systemctl unmask: প্রশ্নে ইউনিট শুরু করার সমস্ত এবং যে কোনও প্রচেষ্টাকে অনুমতি দেয় (ম্যানুয়ালি বা ডিফল্ট বুট টার্গেটের নির্ভরতা সহ অন্য কোনও ইউনিটের নির্ভরতা হিসাবে)। নোট করুন যে সিস্টেমেডে অটোস্টার্টের জন্য চিহ্নিতকরণটি প্রশ্নযুক্ত ইউনিটে ডিফল্ট বুট লক্ষ্য থেকে একটি কৃত্রিম নির্ভরতা যুক্ত করে প্রয়োগ করা হয়, সুতরাং "মুখোশ" অটোস্টার্টিংকেও অস্বীকার করে।

রেফারেন্স: সিস্টেমটেক্ট (1)

আরও: লেনার্ট কবিতা (2011-03-02)। "অফ তিন স্তরের"প্রশাসকদের জন্য systemd । 0pointer.de।



6

সংক্ষেপে,

  • disableবুট করার সময় ইউনিটটিকে অক্ষম করে তোলে। তবে সেই ইউনিটটি বুটের পরে যে কোনও সময় শুরু করা যেতে পারে।

  • maskইউনিট পুরোপুরি অক্ষম করে। এটি আনমস্কিং ছাড়া শুরু করা যায় না। এটি স্বয়ংক্রিয়ভাবে বোঝায় যে এটি বুটের সময় ব্যর্থ হবে।


আমি কৌতূহলী - আপনার জন্য কাজ maskএবং unmaskকাজ? (আপনি পরীক্ষা না করতে চাইলে আমি পুরোপুরি বুঝতে পারি!)
জান্না

1
@ জান্না হ্যাঁ এটা কাজ করে। আমি আগে এখন পরীক্ষা করেছি। সঙ্গে postgresql@9.5-main.serviceসেবা।
আনোয়ার

হুম আমি কাজ করব কেন এটি আমার পক্ষে কাজ করে না। আমি জানি আমি একমাত্র নই
জান্না

হতে পারে এটি অ-সমালোচনামূলক পরিষেবার জন্য কাজ করে। এটি এখনও নতুন বলে আমি মনে করি। বিটিডব্লিউ, আপনার উত্তরটি আরও তথ্যপূর্ণ ছিল। এটি সহায়ক ছিল
আনোয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.