ভার্চুয়াল কনসোলটিতে গেটটি চালু করার জন্য একটি ন্যূনতম সিস্টেমড বুটের কী প্রয়োজন?


21

সিস জন্য init, আমি প্রয়োজন /etc/inittabGetty এন্ট্রি, respawning /sbin/initশেল জন্য বাইনারি, বাইনারি ও শেয়ার করা লাইব্রেরি login, getty, পাম / নিরাপত্তা / ছায়া কাপড়, এবং কয়েক ডিভাইস ফাইল।

কারণ upstartআমার একই প্রয়োজনীয়তাগুলি বেশ প্রয়োজন, তবে পরিবর্তে /etc/inittabআমার কয়েকটি *.confফাইলের নীচে রয়েছে /etc/init: একটি * .কনফ যা start on startupএকটি রানলেভেল সেট করে telinitএবং প্রতিটি টিটিআইয়ের জন্য একটি * .কনফ gettyযা সঠিক রানলেভলে সেই টিটিটিতে / রেসওয়ান শুরু করে ।

আমার কোন কনফিগারেশন এবং বাইনারি দরকার systemd init?

যে সমস্ত ডকুমেন্টেশন আমার কাছে পাওয়া গেছে তাতে পরিষেবাগুলি শুরু করতে এবং বন্ধ করতে ইতিমধ্যে ইনস্টল করা সিস্টেমটি কীভাবে ব্যবহার করা যায় সেদিকে দৃষ্টি নিবদ্ধ করা হয়েছে বলে মনে হয়।

চলমান আর্চ বা ফেডোরা ইনস্টলেশন থেকে অনুলিপি করা ফাইল (কার্নেল / initrd ব্যতীত) ন্যূনতম তালিকা ভাল করতে পারে , তবে আমি সে ধরণের তথ্য খুঁজে পাচ্ছি না systemd


আমি যা জানতে চাই তা হল, systemdকোনও ফাইলের জন্য প্রয়োজনীয় কী, এবং সেগুলিতে কী থাকতে হবে, কোনও ইন্ট্রামফের পরে লগইন শেল শুরু switch_rootকরার জন্য এটি কল করে systemd /sbin/init


উদাহরণস্বরূপ upstart, বাইনারি এবং দুটি *.confফাইল:

ফাইল /etc/init/whatever.conf:

প্রারম্ভকালে শুরু করুন
রানলেভেল নির্গত করে
কাজের
লিপি
  টেলিনাইট 2
শেষ স্ক্রিপ্ট

ফাইল /etc/init/tty1.conf:

রানলেভেল থেকে শুরু করুন [12345]
respawn
exec / sbin / agetty -8 --noclear 38400 tty1 linux

উদাহরণস্বরূপ sysvinit, বাইনারি এবং 1 কনফ ফাইলের নামকরণ /etc/inittab:

আইডি: 2: initdefault:
সি 1: 12345: রেসপন: / এসবিন / অ্যাজেটি 38400 টিটি 1 লিনাক্স

এখন আমি systemdসমমানের পরে আছি ।

আমি ধরে নিলাম কমপক্ষে 1 টি *.serviceফাইলের কোথাও একটি [Service]এন্ট্রি রয়েছে ExecStart=-/sbin/agetty --noclear %I linuxএবং এর দরকার আছে Restart=always, তবে আর কী দরকার?


এই ইউআরএলে সিস্টেমড বুটের বর্ণনা দেওয়ার জন্য এখন একটি সাম্প্রতিক রেডহ্যাট জ্ঞান বেস নিবন্ধ (754933) রয়েছে:
আরএইচএল

লোকেরা কীভাবে একটি একক কনফিগারেশন লাইনকে একটি বড় জগাখিচির মধ্যে ফেলে দেয় এবং এটিকে উন্নতি হিসাবে ডাকে তা দেখে হতাশাজনক ingly

উত্তর:


17

প্রথমত, systemdকোনও traditionalতিহ্যবাহী ইউনিক্স নয় init। সিস্টেমড আরও অনেক কিছু, তাই এই দুটির সাথে তুলনা করা কিছুটা অন্যায়।

প্রশ্নের উত্তর দেওয়ার জন্য, যা প্রয়োজনীয় বলে মনে হচ্ছে তা হ'ল কয়েকটি বাইনারি এবং নিম্নলিখিত কনফিগারেশন ফাইলগুলি:

/usr/lib/systemd/system/default.target
/usr/lib/systemd/system/basic.target
/usr/lib/systemd/system/sysinit.target
/usr/lib/systemd/system/getty.target
/usr/lib/systemd/system/getty@.service
/usr/lib/systemd/system/console-getty.service

জারি করার systemctl enable console-getty.service getty@tty2.serviceপরে এই প্রতিলিঙ্কগুলি তৈরি হয়:

/etc/systemd/system/default.target.wants/getty@ত্তি2.service -> / lib / systemd / system / getty @ পরিষেবা
-

দ্রষ্টব্য : গতিশীলভাবে systemdশুরু করার জন্য agetty, অন Alt+ ডিমান্ডের সময় + F3এবং আরও কিছু জাতীয় বৈশিষ্ট্যগুলির বিশেষ বৈশিষ্ট্যগুলি ব্যবহার করার জন্য , এটি প্রদর্শিত হয় যে আপনার কমপক্ষে এই দুটি ফাইলও থাকতে হবে:

/etc/systemd/logind.conf
/lib/systemd/system/autovt@.service

যেখানে autovt@.serviceএকটি syMLink হয় getty@.service

কনফিগারেশন ফাইলের উপাদানসমূহ:

default.target, getty.target, sysinit.targetফাইল ছাড়া খালি হতে পারে [Unit]ট্যাগ এবং (সম্ভবত) Description=xxx

basic.target নির্ভরতার তথ্যও রয়েছে:

[ইউনিট]
বিবরণ = বেসিক সিস্টেম
= Sysinit.target প্রয়োজন
চায় = সকেট.টারাগেট টাইমারস.টারাগেট পাথস.টারাগেট স্লাইস.আরগেট
পরে = sysinit.target sockets.target timers.target paths.target slices.target

আমি নিশ্চিত নই যে ফাইলগুলির প্রয়োজন আছে বা নেই সে হিসাবে লক্ষ্যমাত্রার উল্লেখ নেই exist তারা systemd.special(7)ম্যান পৃষ্ঠাতে বর্ণিত হয় ।


console-getty.service: (কনসোল এজেটির জন্য বিশেষ ক্ষেত্রে)

[ইউনিট]
বিবরণ = কনসোল গেটি
এর পরে = systemd- ব্যবহারকারীর সেশনস। সার্ভিস প্লাইমাউথ-প্রস্থান-অপেক্ষা করুন serv
= Getty.target আগে

[পরিষেবা]
এক্সিকিস্টার্ট = - / এসবিন / অ্যাজেটি - পারমাণবিক - কিপ-বাড কনসোল 115200,38400,9600 ER TERM
প্রকার = অলস
পুনর্সূচনা সবসময় =
RestartSec = 0
UtmpIdentifier = কনস
TTYPath = আপনার / dev / কনসোল
TTYReset = হ্যাঁ
TTYVHangup = হ্যাঁ
KillMode = প্রক্রিয়া
IgnoreSIGPIPE = না
SendSIGHUP = হ্যাঁ

[ইনস্টল করুন]
WantedBy = getty.target

getty@.service: (কনসোল ব্যতীত সমস্ত গেট্টি পরিষেবার জন্য জেনেরিক কনফিগারেশন)

[ইউনিট]
বর্ণনা =% 1 এ গেটে
এর পরে = systemd- ব্যবহারকারীর সেশনস। সার্ভিস প্লাইমাউথ-প্রস্থান-অপেক্ষা করুন serv
= Getty.target আগে
IgnoreOnIsolate = হ্যাঁ
ConditionPathExists = আপনার / dev / tty0

[পরিষেবা]
এক্সিকিস্টার্ট = - / এসবিন / অ্যাজেটি --নোক্লিয়ার% I $ TERM
প্রকার = অলস
পুনর্সূচনা সবসময় =
RestartSec = 0
UtmpIdentifier =% আমি
TTYPath = আপনার / dev /% i
TTYReset = হ্যাঁ
TTYVHangup = হ্যাঁ
TTYVTDisallocate = না
KillMode = প্রক্রিয়া
IgnoreSIGPIPE = না
SendSIGHUP = হ্যাঁ

[ইনস্টল করুন]
WantedBy = getty.target
DefaultInstance = tty1

অবশেষে আপনার সম্ভবত এই কয়েকটি বিশেষ বাইনারি দরকার (কোনটি গুরুত্বপূর্ণ তা আমি চেষ্টা করি নি):

/ lib / systemd / systemd (/ sbin / init সাধারণত এটি দেখায়)
/ Lib / অনুপস্থিত systemd হল / systemd হল-logind
/ Lib / অনুপস্থিত systemd হল / systemd হল-Cgroups-এজেন্ট
/ Lib / অনুপস্থিত systemd হল / systemd হল-ব্যবহারকারী-সেশন
/ Lib / অনুপস্থিত systemd হল / systemd হল-vconsole সেটআপ
/ Lib / অনুপস্থিত systemd হল / systemd হল-আপডেট-utmp
/ Lib / অনুপস্থিত systemd হল / systemd হল-ঘুম
/ Lib / অনুপস্থিত systemd হল / systemd হল-sysctl
/ Lib / অনুপস্থিত systemd হল / systemd হল-initctl
/ Lib / অনুপস্থিত systemd হল / systemd হল-উত্তর পাসওয়ার্ড
/ Lib / অনুপস্থিত systemd হল / systemd হল-এসি শক্তি
/ Lib / অনুপস্থিত systemd হল / systemd হল-সক্রিয়
/ Lib / অনুপস্থিত systemd হল / systemd হল-ব্যাকলাইট
/ Lib / অনুপস্থিত systemd হল / systemd হল-binfmt
/ Lib / অনুপস্থিত systemd হল / systemd হল-bootchart
/ Lib / অনুপস্থিত systemd হল / systemd হল-বাস proxyd
/ Lib / অনুপস্থিত systemd হল / systemd হল-coredump
/ Lib / অনুপস্থিত systemd হল / systemd হল-cryptsetup
/ Lib / অনুপস্থিত systemd হল / systemd হল-fsck
/ Lib / অনুপস্থিত systemd হল / systemd হল-hostnamed
/ Lib / অনুপস্থিত systemd হল / systemd হল-journald
/ Lib / অনুপস্থিত systemd হল / systemd হল-জার্নাল-gatewayd
/ Lib / অনুপস্থিত systemd হল / systemd হল-জার্নাল-দূরবর্তী
/ Lib / অনুপস্থিত systemd হল / systemd হল-localed
/ Lib / অনুপস্থিত systemd হল / systemd হল-মেশিন
/ Lib / অনুপস্থিত systemd হল / systemd হল-মডিউল-লোড
/ Lib / অনুপস্থিত systemd হল / systemd হল-বহু-আসন-X
/ Lib / অনুপস্থিত systemd হল / systemd হল-networkd
/ Lib / অনুপস্থিত systemd হল / systemd হল-networkd-অপেক্ষার-অনলাইন
/ Lib / অনুপস্থিত systemd হল / systemd হল-quotacheck
/ Lib / অনুপস্থিত systemd হল / systemd হল-রেণ্ডম-বীজ
/ Lib / অনুপস্থিত systemd হল / systemd হল-readahead
/ Lib / অনুপস্থিত systemd হল / systemd হল-পুনরারোহণ-FS
/ Lib / অনুপস্থিত systemd হল / systemd হল-সমাধান
/ Lib / অনুপস্থিত systemd হল / systemd হল-rfkill
/ Lib / অনুপস্থিত systemd হল / systemd হল হরতাল
/ Lib / অনুপস্থিত systemd হল / systemd হল-shutdownd
/ Lib / অনুপস্থিত systemd হল / systemd হল-সকেট-proxyd
/ Lib / অনুপস্থিত systemd হল / systemd হল-timedated
/ Lib / অনুপস্থিত systemd হল / systemd হল-timesyncd
/ Lib / অনুপস্থিত systemd হল / systemd হল-udevd
/ Lib / অনুপস্থিত systemd হল / systemd হল-আপডেট পাচিত

সিস্টেমড শুরুর প্রক্রিয়াটির সংক্ষিপ্তসার হিসাবে, আমি মনে করি এটি এরকম কিছু কাজ করে:

  1. সিস্টেমযুক্ত লোকেশন basic.target(বা সমস্ত *.targetফাইল?)
  2. নির্ভরতা উপর ভিত্তি করে মীমাংসা করা হয় WantedBy=, Wants=, Before=, After=... মধ্যে নির্দেশনা [Install]বিভাগে *.serviceএবং *.targetকনফিগারেশন ফাইল।
  3. *.serviceযেগুলি শুরু করা উচিত (যা "বিশেষ" পরিষেবা নয়) এর [Service]একটি ExecStart=নির্দেশিকা সহ একটি বিভাগ রয়েছে যা কার্যকর করতে শুরু করার জন্য নির্দেশ করে।

1
এএআইএআইএকি [Install]বিভাগটি কেবলমাত্র বুট ক্রম দ্বারা ব্যবহৃত হয় না systemctl enable। বুটটি যা দেখায় তা হ'ল প্রতিলিঙ্কগুলি /etc/systemd/system/basic.target.wants/যা দ্বারা তৈরি systemctl enable
স্টিফান মাজেউস্কি

6

systemdআপনি যখন সর্বাধিক নির্দিষ্ট সংখ্যক অবধি টার্মিনালগুলিতে স্যুইচ করেন তখন স্বয়ংক্রিয়ভাবে একটি গেটি তৈরি করে। ডিফল্টটি 6 হয় (সুতরাং আপনি স্বয়ংক্রিয়ভাবে Alt + f1 থেকে Alt + f6 এর জন্য একটি গেট্টি পাবেন)। আপনি যদি এই প্যারামিটারটি পরিবর্তন করতে চান তবে আপনি কিছু অন্যান্য সংখ্যায় (সর্বোচ্চ 12) প্যারামিটার /etc/systemd/logind.confপরিবর্তন করতে সম্পাদনা করতে পারবেনNAutoVTs

আপনি ডিম করার জন্য একটি Getty চান আপনি নিজে আপনার কাছে একটি সিমবলিক লিঙ্ক যোগ করতে পারেন সুইচ না এমনকি যদি /usr/lib/systemd/system/getty@.serviceকরতে /etc/systemd/system/getty.target.wants/ডিরেক্টরি:

ln -sf /usr/lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@tty9.service

এর ফলে getty.targetআরও একটি getty@পরিষেবা প্রয়োজন । একটি লক্ষ্য হ'ল পরিষেবাগুলির সংকলন যা স্প্যান করা দরকার, রানলেভেলগুলির প্রতিস্থাপন যা নির্ভরতা সমর্থন করে। ডিফল্ট লক্ষ্য নির্ভর করেgetty.target

আর্কউইকের সিস্টেমেড এফএকিউ দেখুন

সম্পাদনা: আমি একটু আরও গবেষণা ডকুমেন্টেশন

বুটে systemdডেমন defaultলক্ষ্য এবং তার নির্ভরতা সমস্ত সিস্টেম লোড করে । একটি লক্ষ্য ফাইল দ্বারা সংজ্ঞায়িত করা হয়

/etc/systemd/system/default.target
/usr/lib/systemd/system/default.target

একটি লক্ষ্য ডিরেক্টরিতে symlinks দ্বারা নির্দিষ্ট সংযুক্ত পরিষেবাদির একটি তালিকা রয়েছে

/etc/systemd/system/default.target.wants
/usr/lib/systemd/system/default.target.wants

/etcসংস্করণে বন্টন অক্ষমতা অগ্রাহ্য /usr/lib। কেবলমাত্র .targetফাইলগুলির মধ্যে একটির প্রয়োজন, যখন কোনও ডিরেক্টরির প্রয়োজন হয় না

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

  1. প্রতিটি টার্মিনালের জন্য নির্দিষ্ট স্ক্রিপ্ট দ্বারা শুরু করা হয়েছে (লিঙ্ক /usr/lib/systemd/system/getty@.serviceফাইলের নাম systemdথেকে যে টিটি নামটি প্রতিস্থাপন করা হয়েছে সেই ফাইলের লিঙ্কগুলি )
  2. logindযখন ব্যবহারকারী ভার্চুয়াল টার্মিনালে স্যুইচ করে তখন স্বয়ংক্রিয়ভাবে উত্থাপিত হয় ( inetdকেবল অনুরোধ উপস্থিত হওয়ার সাথে সাথে পরিষেবাগুলি পুরানো পদ্ধতির অনুরূপ )। এটির logindসাথে বিতরণ করা একটি ভিন্ন ডিমন systemdএবং /etc/systemd/logind.confফাইলটি থেকে এটির কনফিগারেশন পড়ে ।

আশা করি এটি সন্তোষজনক।


আমি কোন ফাইলগুলি প্রয়োজন তা জানতে এবং সেগুলিতে কী থাকতে হবে তা জানতে চাই। প্রয়োজনীয় ফাইলগুলির একটি তালিকা দিয়ে আপনি কী উত্তরটি সংক্ষিপ্ত করতে পারেন এবং কী কারণে সেগুলি পড়তে বাধ্য হয়? সেই ডিরেক্টরিতে কী খুঁজে পাওয়া দরকার সে সম্পর্কে আমি তথ্য মিস করছি। আমি আমার প্রশ্নটি আরও বিস্তৃত করার চেষ্টা করব। ধন্যবাদ!
ম্যাটবিয়ানকো

@ ম্যাটবিয়ানকো আপনি অকারণে প্রতিকূল হন systemd। আমি এটির কিছুটা গবেষণা করছি এবং একবারে জিনিসগুলি কীভাবে কাজ করে তা বুঝতে
পেরে

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