سؤال ما الفرق بين / etc / init / و /etc/init.d/؟


ماهو الفرق بين /etc/init/ و /etc/init.d/؟

بشكل عام ، ما معنى أن .d لاحقة ينقل إلى الدليل؟


217
2017-10-01 22:59


الأصل




الأجوبة:


/etc/init.d يحتوي على البرامج النصية المستخدمة من قبل أدوات بدء تشغيل النظام V (SysVinit). هذه هي حزمة إدارة الخدمات التقليدية لنظام التشغيل Linux ، والتي تحتوي على init برنامج (العملية الأولى التي يتم تشغيلها عند الانتهاء من kernel تهيئة) وكذلك بعض البنية التحتية لبدء وإيقاف الخدمات وتكوينها. على وجه التحديد ، الملفات في /etc/init.d هي برامج نصية shell تستجيب لـ start، stop، restartو (عند دعم) reload أوامر لإدارة خدمة معينة. يمكن استدعاء هذه البرامج النصية مباشرة أو (الأكثر شيوعًا) عن طريق بعض الزناد الآخر (عادة ما يكون هناك رابط رمزي في /etc/rc?.d/).

/etc/init يحتوي على ملفات التكوين المستخدمة من قبل Upstart. مبتدئ هو حزمة إدارة خدمة شاب يدافع عنها أوبونتو. الملفات في /etc/init هي ملفات التكوين تقول مغرور كيف ومتى start، stop، reload التكوين ، أو الاستعلام عن status من الخدمة. بدءًا من الوضوح ، ينتقل Ubuntu من SysVinit إلى Upstart ، وهو ما يفسر سبب وجود العديد من الخدمات مع النصوص البرمجية SysVinit على الرغم من أن ملفات تهيئة Upstart مفضلة. في الواقع ، تتم معالجة البرامج النصية SysVinit بواسطة طبقة توافق في Upstart.

.d في أسماء الأدلة يشير عادة إلى دليل يحتوي على العديد من ملفات التهيئة أو البرامج النصية لموقف معين (على سبيل المثال ، /etc/apt/sources.list.d يحتوي على ملفات متسلسلة لجعل الظاهري sources.list. /etc/network/if-up.d يحتوي على البرامج النصية التي يتم تنفيذها عند الشبكة أناnterFيتم تنشيط الآس). يتم استخدام هذه البنية عادة عندما يتم توفير كل إدخال في الدليل من خلال مصدر مختلف ، بحيث يمكن لكل حزمة إيداع المكونات الخاصة بها دون الحاجة إلى تحليل ملف تكوين واحد للإشارة إلى نفسه. في هذه الحالة ، يحدث فقط أن "init" هو اسم منطقي للدليل ، SysVinit جاء أولاً واستخدامه init.d، و Upstart تستخدم عادي init للحصول على دليل له غرض مشابه (ربما كان أكثر "تعميمًا" ، وربما أقل تعجرفًا ، إذا كان قد استخدم /etc/upstart.d في حين أن).

¹ لا يعد initrd


217
2017-10-01 23:28



مذكرة تاريخية مقصور على فئة معينة: .d تم إدخال الدلائل مع النظام V. كان ذلك تدوينًا محيرًا في النهاية ، وفي النهاية فكرة الشخص الواحد التي دخلت إلى مصدر الشفرة ولم تستطع المغادرة. على سبيل المثال ، إذا كنت تعتقد ذلك cat اسم سيئ للمهمة التي تؤديها ، تخيل عدد الملفات في النظام الذي يجب أن تلمسه لتغييره. - msw
على الأنظمة ، التي لديها كل الدلائل ، والتي تستخدم من Upstart و SysVinit؟ هل هناك طريقة للتحقق؟ - asheeshr
AsheeshR تحقق ما إذا كان هناك حزمة تسمى upstart أو sysvinit. وفي الإصدارات الأخيرة ، يمكن أن يكون systemd كذلك (التي لم تكن موجودة لأوبونتو عندما كتبت إجابتي). انها أيهما يوفر حزمة /sbin/init (dpkg -S /sbin/init). - Gilles
على مثال AWS أوبونتو أنا أستخدم (من Bitnami) ، هو upstart الحزمة التي توفر / sbin / init (ركض dpkg -S /sbin/init). لكن Bitnami وضعت نصها في الدليل /etc/init.d. أليس هذا متضارب مع إجابتك علىAheheeshR أعلاه؟ شكرا لكم. - Sabuncu
Sabuncu هذا مثال على "تتم معالجة النصوص البرمجية SysVinit بواسطة طبقة توافق في Upstart". - Gilles


عادة ما يتم إلحاق ".d" باسم الدليل للإشارة إلى أن ما تم استخدامه (أو ما كان يمكن أن يكون) تم التعامل معه بواسطة نص برمجي واحد أو ملف تكوين واحد تم تقسيمه إلى عدة ملفات من أجل الراحة ، ولكن يجب تضمينها ، أو تنفيذها ، معًا.

فمثلا، /etc/apache/conf.d/ أو /etc/apt/sources.d/

في الحالات التي يكون فيها من المهم ترتيبها / تضمينها ، تبدأ أحيانًا الملفات الموجودة في هذه الأدلة برقم ، مثل "00-default" أو "80-user" بحيث يتم تنفيذها بالترتيب الصحيح.

في حالة /etc/init.d/ هذا يشير إلى أنه يجب تنفيذ جميع البرامج النصية في "init.d". في الوقت الحاضر ، ومع ذلك ، فإن نظام init من أنظمة التشغيل الحديثة هو أكثر قليلا من ذلك ، ولكن اسم الدليل لا يزال هناك.


26
2018-05-10 02:51



ربما .d يعني أنه مرتبط بعملية "deamon" والتي تبدأ عادة في وقت التمهيد.
.d هو بالتأكيد للدليل ، وليس البرنامج الخفي. - Martin


وكما تشيرون ، فإن التسمية ".d" محيرة وغريبة ، وليس لها أي مكان في أي نظام حديث - ستلاحظ أن معظم الخدمات الحديثة قد تميل إلى إسقاطها.

السبب في الدليل /etc/init و لا /etc/upstart لأن Upstart هو اسم المشروع ، لا يزال الثنائي المثبت بالفعل /sbin/init وبالتالي ، لن يكون من المنطقي أن يكون لتكوينه اسم لا يتطابق مع الاسم الثنائي.


12
2017-10-13 01:59



هذا خطأ ، انظر على سبيل المثال وديف rules.d، Xorg في الآونة الأخيرة نسبيا xorg.conf.d، ليس كبيرا جدا /etc/profile.d إلخ.. - Ruslan