সিস্টেমল্ড কি এখনও রানলেভেল সম্পর্কে জানে?


17

সিস্টেমডে কি এখনও রানলেভেলের ধারণা রয়েছে? উদাহরণস্বরূপ এটি ব্যবহার করা অর্থহীন telinit <number>?



আমি নীচে উত্তর সম্পর্কে জানি না, কিন্তু RHEL ইন / CentOS 7.6 init 1বা init 3বা init 5বা init 6বা init 0বা runlevelএখনও আচরণ হিসাবে সবসময় তারা আছে, এবং যে সব আমি যত্ন সম্পর্কে না। তারপরে আরও সহজ বাক্য গঠনsystemctl blabla blabla.blabla
রন করুন

উত্তর:


14

সিস্টেমডি রান-লেভেল লো-ডাউন

সিস্টেমডি (এমোন) এর মধ্যে রানলভেলগুলি "লক্ষ্য" হিসাবে প্রকাশিত হয়। ধারণাটি এখনও আছে, তবে আপনার প্রয়োজনীয়তার জন্য পছন্দসই ফলাফল উত্পন্ন করার কার্যপ্রবাহটি আলাদা।

সংযুক্তদের এই সমস্যাটি স্পষ্ট করা উচিত।

আমি কীভাবে বর্তমান রানলেভেল পরিবর্তন করব?

$ systemctl isolate runlevelX.target

পরবর্তী বুটের জন্য আমি কীভাবে ডিফল্ট রানলেভেল পরিবর্তন করব?

# Create a symlink
$ ln -sf /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
  • ln -sf TARGET DESTINATION
  • -s প্রতীকী লিঙ্ক তৈরি করে
  • -f বিদ্যমান গন্তব্য ফাইলটি সরিয়ে দেয়

বা (সেনেটম্যানের পরামর্শ অনুসারে) কেবল "আশীর্বাদী" systemdকমান্ডটি ব্যবহার করুন :

systemctl set-default [target name].target

আমি কীভাবে বর্তমান রানলেভেলকে সনাক্ত করব?

$ systemctl list-units --type=target

আমি কি রান কমান্ডের মধ্যে স্যুইচ করতে init কমান্ডটি ব্যবহার করতে পারি?
ড্রপানিয়াস

2
যদি আপনার সিস্টেমেড প্যাকেজটি সিসভি কম্প্যাট সমর্থন সহ নির্মিত হয়, তবে এটি সিস্টেমেড বাইনারিতে একটি টেলিনিট সিলেমিংক অন্তর্ভুক্ত করবে, যাকে, যখন টেলিনিট হিসাবে ডাকা হয়, সিস্টেমড টার্গেটের জন্য রানলিভেলগুলি 0-6 মানচিত্র তৈরি করবে - এই ম্যাপিংগুলির তালিকার জন্য টেলিনিট (8) পরীক্ষা করুন ।
উইল্যান্ড

2
ডিফল্ট টার্গেট পরিবর্তন করার জন্য আপনাকে systemctl set-default [target name].targetলিঙ্কটি নিজে তৈরির পরিবর্তে ব্যবহার করা উচিত ।
সেন্টিমিনে

13

না, যেমন সিস্টেম সিস্টেমের লোকেরা দু'বার লিখেছিল, একবার তাদের telinitম্যানুয়ালে এবং একবার তাদের runlevelম্যানুয়ালটিতে, রানলেভেলগুলি "অপ্রচলিত"। আপনি রানলেভেলগুলি সম্পর্কে ভুলে যেতে পারেন।

এই সামান্য কিছু সামঞ্জস্যতার সাথেই বাস্তবে সিস্টেমডে অস্তিত্ব নেই।

  • টার্গেট নামের জন্য কিছু প্রতীকী লিঙ্ক আছে, কিন্তু এই লক্ষ্যগুলি আসলে কখনও সিস্টেমড যথাযথ দ্বারা ব্যবহৃত হয় না।
    • বরং, বুটস্ট্র্যাপ প্রক্রিয়া একটি নিয়োগ default.target(এবং সেখান থেকে এক বা উভয় graphical.targetএবং একটি multi-user.target), একটি rescue.target, অথবা একটি emergency.target। এবং শাটডাউন প্রক্রিয়াটিতে ক shutdown.target, ক reboot.target, ক halt.target, বা এ জড়িত poweroff.targetকোনও রান-স্তরের লক্ষ্যগুলি বুটস্ট্র্যাপ বা শাটডাউন এর সাথে জড়িত নয়
    • যে telinitকমান্ডটি কেউ মনে করতে পারে তার কমান্ড-লাইন আর্গুমেন্টের মানচিত্রের জন্য সামঞ্জস্যের প্রতীকী লিঙ্কগুলি ব্যবহার করে, তাও তা করে না। সেখানে সোর্স কোডে একটি hardwired টেবিল telinitপ্রোগ্রাম, এবং সংখ্যার 2, 3, 4, এবং 5যেমন কমান্ড আর্গুমেন্ট ম্যাপ hardwired হয় multi-user.targetএবং graphical.target
    • systemd-update-utmp এছাড়াও একটি অভ্যন্তরীণ হার্ডওয়ার টেবিল রয়েছে।
  • রানলেভেল স্টাফগুলির কোনও "আরআইডি টেবিল" নেই। সিস্টেমড কেবল ভ্যান স্মুরেনবার্গের সাথেই উপযুক্ত, ভ্যান স্মুরেনবার্গের rcসাথে নয় init
  • সিস্টেমডে নিজে দ্বারা পরিচালিত কোনও "বর্তমান রান স্তর" মান নেই। বরং, প্রায় সম্পূর্ণ অননুমোদিত systemd-update-utmpকমান্ড অভ্যন্তরীণভাবে , এবং rescue.target, এর সক্রিয়করণের শর্তাবলী অনুযায়ী পরিচালনা করে ।multi-user.targetgraphical.target
  • systemd-sysv-generator, systemd এর পশ্চাদগম্য সামঞ্জস্যতা পরিষেবা ইউনিট জেনারেটর, উত্পাদিত পরিষেবা ইউনিটগুলিতে /etc/rc[234].dডিরেক্টরিগুলিকে কেবলমাত্র একটি Wanted-Byসম্পর্কের সাথে একীভূত করে multi-user.target। উত্পন্ন পরিষেবা ইউনিটগুলিতে রান স্তরের কোনও প্রকৃত উল্লেখ নেই। (কয়েক বছর আগেও ছিলো, কিন্তু সিস্টেমবাদী লোকেরা দেখতে পেল যে এটি ভুল হয়েছে, কারণ তাদের অন্য কোথাও উল্লেখ করা হয়নি।)

যদি কেউ এমন কোনও সিস্টেমের ব্যবহারকারী হন যা আর্ক লিনাক্সের মতো সিস্টেমড তৈরি করে যা প্রশ্নকর্তার জন্য " কেন install init 0 on ফল দেয় আর্চ ইনস্টলের উপরে" অতিরিক্ত যুক্তি "দেয়? ", কেউ সামঞ্জস্যতা শিমসও পান না এবং এই জাতীয় আদেশ দেয় যেমন init 0"আদি" systemd হল আচরণ, অভিযোগ করতে যে কমান্ডটি ভুল উচ্চারণ করা হয়েছে যা স্থাপিত।

আরও পড়া


4

অনেক ধন্যবাদ. সুতরাং, যদি আমি সঠিকভাবে বুঝতে পারি:

উদাহরণ স্বরূপ:

ls -ll /usr/lib/systemd/system/runlevel*.target

আউটপুট:

/usr/lib/systemd/system/runlevel0.target -> poweroff.target
/usr/lib/systemd/system/runlevel1.target -> rescue.target
/usr/lib/systemd/system/runlevel2.target -> multi-user.target
/usr/lib/systemd/system/runlevel3.target -> multi-user.target
/usr/lib/systemd/system/runlevel4.target -> multi-user.target
/usr/lib/systemd/system/runlevel5.target -> graphical.target
/usr/lib/systemd/system/runlevel6.target -> reboot.target

সুতরাং আপনি দেখতে পাচ্ছেন, রানলেভেলের ধারণাটি বিদ্যমান, তবে রানলেভেল স্টার্ট ফাইলগুলি আসলে "আসল" ফাইল নয় বরং নতুন, আধুনিক, আরও ভাল নামযুক্ত ফাইলগুলির স্কিমের সফট-লিঙ্কগুলির কারণে এটি বেশ অপ্রচলিত which সিস্টেমড তাদের "লক্ষ্য" বলতে পছন্দ করে।

সুতরাং, আপনি যদি স্টেহ করতে চান তবে telinit 5এটি এর মতো হবে: systemctl isolate runlevel5.target যা এর সাথে একরকম: systemctl isolate graphical.target(আমার মতে প্রস্তাবিত)।

আপনি যদি সম্ভাব্য সমস্ত লক্ষ্যগুলি জানতে আগ্রহী হন তবে:

ls /usr/lib/systemd/system/*.target

হ্যাঁ, আমি বিশ্বাস করি আপনি এটি সঠিকভাবে বুঝতে পারছেন। পদ্ধতিগত, ধাপে ধাপে ধাপে আইএনআইটি.ডি সিস্টেম হিসাবে আমি সিস্টেমডিকে দেরি করে গ্রহণ করব, আমি যার সাথে সবচেয়ে বেশি পরিচিত ... আমি সাধুবাদ জানালাম যে আপনি সিস্টেমডি অন্বেষণ করছেন। সিস্টেমডির সেরা অংশটি হল এর সমান্তরাল মাল্টি-থ্রেডিং, যা দ্রুত বুট সক্ষম করে। মাল্টি-থ্রেডিং বুটটি আইএনআইটি.ডি দিয়ে সম্পন্ন করা যায়, তবে শক্তিশালী বেস স্ক্রিপ্টিং প্রয়োজন।
টাইলার ম্যাগিনিস 16

বিটিডাব্লু, ls -llএর সমতুল্য ls -l। আপনি ব্যবহার করার অভ্যাসে যেতে চাইবেন ls -ld
জি-ম্যান বলছেন 'পুনরায় ইনস্টল করুন মনিকা'

telinit 0/ telinit 6এখনও কাজ। যেহেতু এটি মাইগ্রেশনে সহায়তা করে এবং আমার মনে হয় বেশিরভাগ ডিস্ট্রোস এখনও সমর্থনটি বাদ দেওয়ার কোনও কারণ দেখতে পান না। isolateরান-লেভেল কীভাবে কাজ করে তা স্পষ্টতই অনুকরণ করার জন্য উচ্চাকাঙ্ক্ষী, তবে বিভিন্ন মন্দ প্রবণতা রয়েছে। আমি isolate runlevel5.targetবা সমস্ত নির্দেশাবলী উপেক্ষা করার জন্য অত্যন্ত পরামর্শ দিচ্ছি isolate graphical.target। প্রান্তের উদাহরণটি
সোর্সজেদি

0

সিস্টেমে sysV init সিস্টেমে রানলেভেলের জন্য কাউন্টার পার্ট হিসাবে লক্ষ্যগুলি প্রবর্তন করে । সিমটেড বিকাশকারীরা বেশিরভাগ সিসভি স্ক্রিপ্টগুলির সাথে এটি প্রায় সামঞ্জস্যপূর্ণ করে তুলেছিলেন। একই জন্য ঘটে । এটি সিস্টেম সমতুল্য অনুবাদ করা হয়।telinit <runlevel>

উদাহরণস্বরূপ telinit 0মেশিন বন্ধ ক্ষমতা। systemd হল রয়েছে poweroff.target হিসাবে একই করতে রান-লেভেল 0 । সুতরাং পাওয়ার telinit 0অফ.আরটিজেট সক্রিয় করতে সিস্টেমডি দ্বারা অনুবাদ করা হয়েছে ।

তবে সামঞ্জস্যের কিছু সমস্যা রয়েছে সিম্টেমড এবং এসআইএসভি থিম সিস্টেমগুলির সাথে- https://www.freedesktop.org/wiki/Software/systemd/Incompatibables

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