লিনাক্সের "/etc/init.d" এবং "/etc/rcX.d" ডিরেক্টরিগুলির মধ্যে সংযোগ কী?


25

আমি " লিনাক্স কমান্ড লাইন এবং শেল স্ক্রিপ্টিং বাইবেল, দ্বিতীয় সংস্করণ " নামে একটি বই থেকে কমান্ড লাইন শিখছি । বইটি এই বলে:

কিছু লিনাক্স বাস্তবায়নে বুটআপটি স্বয়ংক্রিয়ভাবে শুরু করার জন্য প্রক্রিয়াগুলির একটি সারণী থাকে। লিনাক্স সিস্টেমে, এই টেবিলটি সাধারণত বিশেষ ফাইল / ইত্যাদি / আরম্ভের মধ্যে থাকে।

অন্যান্য সিস্টেমে (যেমন জনপ্রিয় উবুন্টু লিনাক্স বিতরণ) /etc/init.d ফোল্ডারটি ব্যবহার করে, এতে বুট সময়ে পৃথক অ্যাপ্লিকেশন শুরু এবং বন্ধ করার জন্য স্ক্রিপ্ট রয়েছে। স্ক্রিপ্টগুলি /etc/rcX.d ফোল্ডারগুলির অধীনে প্রবেশের মাধ্যমে শুরু করা হয়, যেখানে এক্স রান স্তর।

সম্ভবত যেহেতু আমি লিনাক্সে নতুন আছি, দ্বিতীয় অনুচ্ছেদে উদ্ধৃত অর্থ কী তা আমি বুঝতে পারি নি। কেউ কি আরও সরল ভাষায় একই ব্যাখ্যা করতে পারেন?


এটি এর আগে
বিএসডি

@ নীচে এই এক অন্য। আমার একটা প্রসঙ্গ আছে আপনি যে পৃষ্ঠায় লিঙ্ক করেছেন সেগুলিতে আমি যে প্রশ্নগুলি দেখছি সেগুলি থেকে পৃথক IM
এর_মে

@ ডাউন ডাউন, তবে ডুপ্লিকেট হিসাবে পতাকাটি আরও তথ্যপূর্ণ হতে পারে যদি আপনি এমনটি অনুভব করেন
n611x007

উত্তর:


30

আসুন ভুলে যাই init.dবা rcx.dখুব সহজ জিনিস রাখি। কল্পনা করুন আপনি এমন একটি প্রোগ্রাম করছেন যাঁর একমাত্র দায়িত্ব অন্য স্ক্রিপ্টগুলি চালানো বা হত্যা করা sole

তবে আপনার পরবর্তী সমস্যা হ'ল তারা যাতে যথাযথভাবে চালিত হয় তা নিশ্চিত করা। কীভাবে পারফর্ম করবেন?

এবং কল্পনা করুন যে এই প্রোগ্রামটি scriptsস্ক্রিপ্টগুলি চালনার জন্য একটি ফোল্ডারের ভিতরে দেখেছিল । স্ক্রিপ্টগুলির অগ্রাধিকার অর্ডার করতে আপনি এগুলিতে নাম রাখবেন সংখ্যার ক্রম বলতে দিন। এই আদেশ কি মধ্যে সম্পর্ক dictates হয় init.dএবংrc

অন্য কথায় init.dস্ক্রিপ্টগুলি চালাতে হয় এবং rcX.dএতে তাদের চালানোর ক্রম থাকে।

Xমান rcX.d রান স্তর। এটি ওএসের বর্তমান অবস্থাতে আলগাভাবে অনুবাদ করা যেতে পারে।

আপনি যদি rcX.dস্ক্রিপ্টগুলির ভিতরে খনন করেন তবে এই ফর্ম্যাটিংটি পাবেন:

Xxxabcd
  • Xসঙ্গে প্রতিস্থাপিত হয় Kবা S, যা কিনা স্ক্রিপ্ট হওয়া উচিত ঘোরা killedবা startedবর্তমান রান স্তরের
  • xx অর্ডার নম্বর
  • abcd স্ক্রিপ্টের নাম (নামটি অপ্রাসঙ্গিক তবে এটি নির্দেশ করবে যেখানে স্ক্রিপ্টটি এটি চলবে)

2
দুর্দান্ত ব্যাখ্যা, খুব পরিষ্কার। ধন্যবাদ @whoami
its_me

9

লিনাক্সের জন্য বিভিন্ন বিভিন্ন init সিস্টেম রয়েছে। প্রধানগুলি হ'ল সিসভিট (প্রচলিত এক), আপস্টার্ট (উবুন্টুর প্রতিস্থাপন), এবং সিস্টেমডি (ফেডোরা এবং জোনোম দ্বারা চালিত )। ডিরেক্টরিগুলি /etc/init.dএবং /etc/rc?.dSysVinit দ্বারা ব্যবহৃত হয়। বইটি উবুন্টু সম্পর্কিত তাদের উল্লেখ করতে পারে কারণ তথ্যটি কিছুটা তারিখযুক্ত (উবুন্টু সকলের মতো সিসভিট ব্যবহার করতে ব্যবহৃত হয়েছিল) বা কারণ ডিরেক্টরিগুলি এখনও সামঞ্জস্যতার জন্য বিদ্যমান।

/etc/init.dস্ক্রিপ্টগুলির একটি গুচ্ছ রয়েছে, যার মধ্যে একটি পরিষেবা শুরু এবং বন্ধ করার জন্য প্রতিটি নির্দেশাবলী রয়েছে। এর মধ্যে কয়েকটি পরিষেবা বুট করার সময় শুরু করা দরকার; অন্যদের মাল্টিউজার মোডে শুরু করা দরকার তবে একক ব্যবহারকারীর রক্ষণাবেক্ষণ মোডে নয়; এবং পছন্দসই পরিষেবাদির বিভিন্ন সেট সহ বিভিন্ন মোডের সংজ্ঞা দেওয়া সম্ভব। সিসভিনিট এটি রানলেভেলের মাধ্যমে পরিচালনা করে । ডিরেক্টরিতে /etc/rc$N.dরানলেভেল এন ( /etc/rc$N.d/S*) প্রবেশ করার সময় চালিত স্ক্রিপ্ট এবং রানলেভেল এন ( ) রেখে যাওয়ার সময় চালিত স্ক্রিপ্টগুলি রয়েছে /etc/rc$N.d/K*। যেহেতু প্রতিটি রানলেভেলের জন্য স্ক্রিপ্টগুলির অনুলিপি সংরক্ষণের পরিবর্তে অনেক রানলেভেলের স্ক্রিপ্টগুলি অভিন্ন থাকে, স্ক্রিপ্টগুলি সমস্ত একক স্থানে সংরক্ষণ করা হয় /etc/init.d, এবং রানলেভেল-নির্দিষ্ট ডিরেক্টরিগুলি/etc/rc?.dপ্রতীকী লিঙ্কগুলি ধারণ করে। তবুও প্রতীকী লিঙ্কগুলির নাম নির্দেশ করে যে পরিষেবাটি রান্লিলেলে ( S*) শুরু করা হবে বা বন্ধ করা হবে (হত্যা করা হবে K*) এবং স্ক্রিপ্টগুলি সম্পাদিত হয় এমন ক্রমটি নিয়ন্ত্রণ করার জন্য একটি সংখ্যাসূচক উপসর্গ ব্যবহৃত হয়।

ট্র্যাভারিংয়ের জন্য দায়ী স্ক্রিপ্টটি /etc/rc$N.dহ'ল /etc/init.d/rc(প্রাক-আপস্টার্ট উবুন্টু এবং ডেবিয়ানে; অবস্থানগুলি অন্যান্য লিনাক্স বিতরণে পৃথক হতে পারে)।


সুতরাং, উবুন্টু ব্যবহার করছে না /etc/init.dএবং /etc/rc?.dআর, এবং পরিবর্তে ভুঁইফোড় আছে?
এর_মেটি

1
@ কৃষাডি'সুজা বেশ নয়। উবুন্টু সিসভিনিটের পরিবর্তে আপস্টার্ট ব্যবহার করে তবে অনেকগুলি প্যাকেজ এখনও স্ক্রিপ্টগুলিতে /etc/init.d(আপস্টার্ট .confফাইলগুলির পরিবর্তে ইন /etc/init) পাঠায় , সুতরাং আপস্টার্ট এখনও সমর্থন করে /etc/init.dএবং /etc/rc?.dসামঞ্জস্যের জন্য।
গিলস 'তাই মন্দ হওয়া বন্ধ করুন'

উবুন্টু আপস্টার্ট থেকে 15.04 সাল থেকে সিস্টেমডে স্যুইচ করেছে। সুতরাং এই মুহুর্তে (16.04) উবুন্টুতে তিনটি ডিআই সিস্টেম রয়েছে: সিসভিনিট, আপস্টার্ট এবং সিস্টেমড d প্রথম এবং দ্বিতীয় পিছনে সামঞ্জস্যের জন্য বাকি আছে।
পেট্রো ক্লিফ

4

/etc/init.d ডিরেক্টরিটি যেখানে init স্ক্রিপ্টগুলি অন্তর্ভুক্ত।

etc/rcX.dযেখানে লিঙ্ক নিয়ন্ত্রণ যেটি হল কতগুলি পরিষেবা নিহত অথবা যখন রান-লেভেল লিখে শুরু হয় X। ফাইলগুলি rcX.dকে দিয়ে শুরু পরামিতি সঙ্গে মৃত্যুদন্ড কার্যকর করা হয় stop, এবং দিয়ে শুরু ফাইল Sপ্যারামিটার সঙ্গে মৃত্যুদন্ড কার্যকর করা হয় start। এটি সিক্যুয়েন্স স্টার্টআপ এবং Kবা পরে দুটি অঙ্কের নম্বর ব্যবহার করে অর্ডার বন্ধ করা সাধারণ S। যথাযথ শুরু এবং অর্ডার বন্ধ করার বিষয়টি নিশ্চিত করার জন্য দুটি ক্রমের জন্য 100 টি যোগ করা সাধারণ common

প্রোগ্রাম লিঙ্ক অপসারণ বা ক্ষেত্রে পরিবর্তন করে একটি রান স্তরের অক্ষম করা যেতে পারে Kবা Sকরতে kবা s

সম্পাদনা: প্রশাসকরা সাধারণত স্ক্রিপ্টগুলি চালান /etc/init.dযা থেকে বিতরণের উপর নির্ভর করে অন্য ডিরেক্টরিতে প্রতীকী লিঙ্ক হতে পারে। (বিভিন্ন বিতরণের বিভিন্ন মান রয়েছে))

rcX.dআরম্ভের কোড দ্বারা ব্যবহৃত হয় রান মাত্রা পরিবর্তন।


সবচেয়ে সিস্টেমে, /etc/init.dঅধীনে ডিরেক্টরিতে অবশ্যই এমন একটি সিমবলিক লিঙ্ক হয়/etc/rc.d/init.d
নিখিল Mulley

1
তাহলে, মূলত /etc/init.dঅকেজো /etc/rcX.d? এবং যেহেতু /etc/rcX.dপ্রারম্ভকালে চালু হওয়া প্রোগ্রামগুলির নিয়ন্ত্রক তাই এটির ফাংশনটি ঠিক এর মতোই /etc/init.d?
এর_মে

এটি সিস্টেমের উপর নির্ভর করে। জেন্টু উদাহরণস্বরূপ, এটির ইনফ ফাইলগুলির জন্য কেবল /etc/init.d ব্যবহার করে; এটির /etc/rc*.d ডিরেক্টরি নেই। আর্ক লিনাক্স একইভাবে, /etc/init.d এর পরিবর্তে কেবল /etc/rc.d রয়েছে।
লেবেশদে

1

যদিও @ বিল্টহোর এটির খুব ভাল উত্তর দিয়েছেন, তবে এখানে আমার বোঝার /etc/rcX.dএবং /etc/init.d:

  • /etc/init.d বুট সময়ে পৃথক অ্যাপ্লিকেশন শুরু এবং বন্ধ করার জন্য স্ক্রিপ্ট রয়েছে।
  • /etc/rc?.dডিরেক্টরিগুলি বিভিন্ন রান স্তরের প্রতিনিধিত্ব করে এবং এর মধ্যে থাকা স্ক্রিপ্টগুলি /etc/init.dডিরেক্টরিতে প্রকৃত স্ক্রিপ্টগুলির প্রতীকী লিঙ্ক ছাড়া কিছুই নয় । রান লেভেল পরিবর্তন করা সিস্টেমের মোডকে পরিবর্তিত করে, যেমন খুব বেসিক সিঙ্গল ইউজার মোডকে কনসোল-ওয়ানডে মোডকে উন্নত গ্রাফিকাল ইন্টারফেসে রূপান্তরিত করে।

সুতরাং, নিজে /etc/rc?.dছাড়া ডিরেক্টরিগুলির কোনও ব্যবহার নেই /etc/init.d(এবং অবশ্যই, তদ্বিপরীত)।

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