সিস্টেমেস্টেল থেকে সমস্ত সক্ষম পরিষেবাগুলি কীভাবে তালিকাভুক্ত করবেন?


279

আমি কীভাবে সমস্ত enabledপরিষেবা তালিকাভুক্ত করতে পারি systemctl?

আমি জানি রানিং systemctlকমান্ড নিজেই সমস্ত পরিষেবাদি তালিকাভুক্ত করে তবে আমি কেবল enabledসেগুলি পেতে চাই ।


আপনি সক্ষম দ্বারা কি বোঝাতে চান? আপনি বোঝাতে চাইছেন যে পরিষেবাগুলি চলছে?
জেনারেল

7
@ একটি পরিষেবা সক্ষম করা এটি শুরু করার থেকে একেবারেই আলাদা। দেখুন man systemctl
জোস

আকর্ষনীয়। স্বল্পতম রেট করা উত্তর হ'ল সর্বাধিক "সঠিক" উত্তর, যদিও এটি পরিষ্কারভাবে সেরা উত্তর নয়। এই দুর্দান্ত প্রশ্নটি (এবং এর উত্তরগুলি) কীভাবে সিস্টেমড ইউনিক্স অ্যান্ড কোংয়ের দীর্ঘস্থায়ী (এবং উজ্জ্বল) নকশা নীতিগুলি লঙ্ঘন করে তার একটি আকর্ষণীয় উদাহরণ @ ফিলিপএলভারেজ অভিযোগ করেছেন যে সর্বাধিক গৃহীত উত্তর অনুমান করেছে যে সিস্টেমড ইউনিক্স ডিজাইনের দর্শন অনুসরণ করে, কিন্তু সিস্টেমড / systemctl তিনি যা চান ঠিক তা করতে পারে (বেশিরভাগ অভিজ্ঞ ব্যবহারকারীরা কেবল সেই সম্পূর্ণ ব্লোট বিবেচনা করবেন)। আমি আরও স্পষ্টভাবে দেখতে শুরু করি যে লিনাস টরভাল্ডস কেন সিস্টেমডের পক্ষে এতই তীব্র সমালোচিত।
বিসিআই

উত্তর:


411

systemctl list-unit-files | grep enabledসমস্ত সক্ষমদের তালিকাভুক্ত করা হবে ।

আপনি যদি বর্তমানে কোনটি চলমান চান তা আপনার প্রয়োজন systemctl | grep running

আপনি যা খুঁজছেন তা ব্যবহার করুন। সক্ষম হয়েছে, এর অর্থ এটি চলছে না। এবং দৌড়ানোর অর্থ এটি সক্ষম নয়। তারা দুটি ভিন্ন জিনিস.

সক্ষম করা মানে সিস্টেমটি পরবর্তী বুটে পরিষেবাটি চালাবে। সুতরাং আপনি যদি কোনও পরিষেবা সক্ষম করেন তবে আপনাকে এখনও এটি ম্যানুয়ালি শুরু করতে হবে, বা পুনরায় বুট করতে হবে এবং এটি শুরু হবে।

দৌড়ানোর অর্থ এটি এখনই চলমান, তবে এটি সক্ষম না হলে আপনি পুনরায় বুট করার সময় এটি পুনরায় আরম্ভ হবে না।


5
বিরক্তিকর এই গুরুত্বপূর্ণ তথ্যটি দেখানোর জন্য একটি বাহ্যিক সরঞ্জাম (গ্রেপ) ব্যবহার করতে হবে। তবে আমাদের
ফিলিপ আলভারেজ

34
@ ফিলিপএলভারেজ সঠিক তবে লিনাক্স এইভাবে কাজ করে। অনেক ছোট বাইনারি যা একে অপরের সাথে ভালভাবে কাজ করে। systemctl যা চাওয়া হয় তা করে, এটি পরিষেবাগুলির তালিকা করে। সিস্টেমেটিএলটিতে অন্তর্নির্মিত কোনও ফিল্টারিং কমান্ড নেই কারণ গ্রেপ ইতিমধ্যে বিদ্যমান এবং কোনও প্রোগ্রামের আউটপুট দিয়ে এটি ভাল করতে পারে। এটি সর্বদা কেমন ছিল :)
ডোরিয়ান

3
আমি সম্মত এবং তাই এটি হওয়া উচিত। তবে, সিস্টেমেড ইতিমধ্যে এত কিছু করার চেষ্টা করে যা আমি ভাবছি কেন এটি সক্ষম পরিষেবাদি তালিকাভুক্ত করতে পারে না?
ফিলিপ আলভারেজ

5
systemctl | grep runningআমাকে কিছু তালিকা না! কিছু চলমান থাকলেও কেবল তার স্থিতি হিসাবে তালিকাভুক্ত করা হয়:enabled, disabled, masked, static
Cirelli94

27
সহজ:systemctl list-unit-files --state=running
হবে

93

man systemctl বলে:

--state=

যুক্তি ইউনিট একটি কমা দিয়ে পৃথক করা তালিকা থাকা উচিত LOAD, SUBঅথবা ACTIVEযুক্তরাষ্ট্র। ইউনিট তালিকাভুক্ত করার সময়, নির্দিষ্ট রাজ্যে কেবলমাত্র তাদের দেখান। --state=failedশুধুমাত্র ব্যর্থ ইউনিটগুলি দেখানোর জন্য ব্যবহার করুন ।

ব্যাখ্যা:

LOAD: ইউনিটের সংজ্ঞাটি যথাযথভাবে লোড হয়েছে কিনা তা প্রতিফলিত করে।
ACTIVE: উচ্চ-স্তরের ইউনিট অ্যাক্টিভেশন রাষ্ট্র, অর্থাত্ সাধারণীকরণ SUB
SUB: নিম্ন-স্তরের ইউনিট অ্যাক্টিভেশন রাষ্ট্র, মানগুলি ইউনিটের ধরণের উপর নির্ভর করে।

যদিও আপনি enabledএটির সাথে ইউনিটগুলি দেখানোর জন্য এটি ব্যবহার করতে পারেন :

systemctl list-unit-files --state=enabled

যদি কোনও ইউনিট এর enabledমানে হল যে সিস্টেমটি এটি শুরুতে শুরু করবে। যদিও enabledএটির জন্য কিছু সেট করা আসলে তা নয় startএটি আপনাকে নিজেই এটি করতে হবে বা সিস্টেমটি সেট করার পরে এটি পুনরায় বুট করতে হবে enabled


5
একই সাথে সক্ষম করতে এবং শুরু করতে:systemctl enable --now ...
অরুলিয়ান ওমস

1
--state=enabledসিস্টেমড সংস্করণ 215 (রাস্পিয়ান 8 জেসির উপর) এর কোনও প্রভাব নেই, তবে এটি সিস্টেমেড সংস্করণ 229 (উবুন্টু 16.04.03 জেনিয়ালে) তে কাজ করে।
এমপিবি

@ এমপিবি: তবে এটি আর্চ লিনাক্সের 235 সংস্করণে পুরোপুরি সূক্ষ্মভাবে কাজ করে।

64

সব তালিকা দেখতে systemdসেবা যা হয় state=activeএবংsub=running

systemctl list-units --type=service --state=running

চলমান বা প্রস্থানিত এবং অন্তর্ভুক্ত থাকা সমস্ত systemdসেরিসের তালিকা করতেstate=active

systemctl list-units --type=service --state=active

12

'সক্ষমিত' পরিষেবাগুলি দেখতে যেগুলি এখনও আপস্টার্ট / আরআর রানের আওতায় রয়েছে সেগুলি দেখতে:

systemctl list-unit-files --type service --state enabled,generated

বর্তমানে চলমান সমস্ত পরিষেবা পরিচালিত দেখতে:

systemctl list-units --type service --state running

দুর্ভাগ্যক্রমে পরিষেবাগুলির নাম দুটি তালিকায় আলাদা হতে পারে - যেমন sshdবনাম sshএবং syslogবনাম rsyslog
অরেঞ্জডোগ

একমাত্র "নন গ্রেপ" সঠিক উত্তর। যদিও
আপস্টার্টটি

2

সমস্ত সক্রিয় এবং ব্যর্থ পরিষেবাগুলির ওভারভিউ:

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