/etc/rc.d vs /etc/init.d


15

/etc/init.dไดเรกทอรีของอูบุนตูนั้นเทียบเท่ากับการใช้งานจริงหรือไม่กับสิ่งที่ฉันคิดว่าเป็นมาตรฐานที่มากขึ้น/etc/rc.d/(อย่างน้อยใน arch) มีเหตุผลใดที่ใช้ canonical init.d แทน rc.d สำหรับสคริปต์เริ่มต้นหรือไม่


1
จริง ๆ แล้ว arch linux เป็น distro เดียวที่ใช้/etc/rc.dที่ฉันเคยเห็น ... ฉันสงสัยว่ามันอาจจะใช้ใน bsd
xenoterracide

1
มันถูกใช้ใน
freebsd

คำตอบ:


16

Ubuntu ใช้/etc/init.dเพื่อจัดเก็บสคริปต์ SysVinit เพราะ Ubuntu ใช้ Debian และนั่นคือสิ่งที่ Debian ใช้ /etc/rc.d/init.dใช้หมวกสีแดง ฉันลืมสิ่งที่ Slackware ใช้ ที่นั่นไม่ใช่ที่ตั้งมาตรฐาน

อูบุนตูอยู่ในกระบวนการของการเปลี่ยนจาก sysvinit ไปพุ่งพรวด/etc/initซึ่งใช้ในแฟ้มการกำหนดค่า


2
ขออภัย แต่ /etc/init.d เป็นมาตรฐานซึ่งเป็นส่วนหนึ่งของมาตรฐาน SVR4 ที่คัดลอกสคริปต์เริ่มทำงานของ Linux
Rich Homolka

เว็บไซต์ Upstart อ้างว่า Ubuntu ใช้งานมาตั้งแต่รุ่น 6.10
badp

@badp: แม้ว่า 6.10, ยังคงใช้สคริปต์ init SysV /etc/init.dสไตล์ การเปลี่ยนเป็น/etc/init/*.confเริ่มในภายหลัง (8.04 ยังคงเป็นรูปแบบ SysV ทั้งหมด 10.04 กำลังเปลี่ยนไปแล้ว)
Gilles 'ดังนั้นหยุดความชั่วร้าย'

2
Ubuntu เปลี่ยนจาก Upstart เป็น systemd ตั้งแต่ 15.04
PetroCliff

7

/etc/init.d เป็นตำแหน่งในอดีตของ SVR4 ฉันลืมว่าทำไม redhat เพิ่ม /etc/rc.d/ ระดับ ฉันคิดว่าจะแยกสิ่งต่าง ๆ ลงบน rc.d แต่จำเป็นต้องเพิ่ม symlink หลายอันเพื่อใช้งานร่วมกันได้ ดังนั้นจึงมี / etc / init.d เป็น redhat แค่มีการเชื่อมโยงที่อื่น

ดังนั้นที่ตั้งมาตรฐานคือ / etc / init.d ถึงแม้ว่ามันอาจเป็น symlink ไม่ใช่ไดเรกทอรีจริง

มี Linux distros ที่เก่าแก่จริงๆที่คัดลอก BSD ด้วย /etc/rc.local แต่ไม่มีใครใช้มันอีกแล้ว



5

ในอดีต/etc/rc.dทรีไดเรกทอรีแสดงถึงระบบ Init ซึ่งเป็นไปตาม 4.4 การเริ่มต้นระบบแบบดั้งเดิม BSD ซึ่งมักจะเรียกว่าrcระบบ init ระบบ BSD ที่ทันสมัย ​​(ฟรี / เปิด / สุทธิ) และ Slackware Linux ทำตามประเพณีนี้

/etc/init.dต้นไม้ไดเรกทอรีหมายถึงระบบวี (SysV) ระบบ init ซึ่งต่อไปนี้ AT & T UNIX, SunOS, Solaris ประเพณีของการเริ่มต้นระบบ สิ่งนี้เรียกว่าระบบ SysV Init เดเบียนที่เหมาะสมยังคงปฏิบัติตามประเพณีนี้ในซีรีส์ Wheezy แต่วางแผนที่จะใช้ SystemD ในซีรีส์เจสซี ในอดีต RedHat และอนุพันธ์ได้ใช้ SysV Init แต่ไม่ต้องใช้อีกต่อไป

นอกจากนี้เมื่อเวลาผ่านไปฟีเจอร์ของชุดรูปแบบทั้งสองได้รับการยอมรับจากการแจกแจง


จากนั้นมี AIX พร้อมกับ "/etc/rc.d/init.d/" คอลัมน์ A เล็กน้อยและคอลัมน์ B
เล็กน้อย

0

ที่จริงอย่างน้อยใน CentOS 6.8 ซันติอาโก/etc/init.dเป็นเพียง softlink /etc/rc.dไป


นั่นคือสิ่งที่ฉันหมายถึงฮ่าฮ่า ขออภัยเกี่ยวกับการสะกดผิดฉันได้แก้ไขคำตอบของฉันตอนนี้
chromechris

ทำไมผู้คนถึงลงคะแนนโดยไม่อธิบาย คำแถลงเว้นแต่จะไม่เกี่ยวข้องอย่างจงใจยังคงมีคุณค่าหรือความหมายต่อผู้อ่านมือใหม่บางคน อธิบายเมื่อคุณลงคะแนน ฉัน +1 เพื่อยกเลิกผลกระทบของ -1
ซาดอิกบัล

0

PuppyLinux มีทั้ง/etc/rc.dและ/etc/init.dซึ่งไม่ใช่ symlink symlink คืออะไร/ etc / rc.d/init.dซึ่งเชื่อมโยงระดับกับ/etc/init.d (ฉันกำลังมองหาลูกสุนัขที่ใช้ Slackware - มีรสชาติที่ใช้ Ubuntu และอื่น ๆ .) แต่ละ README.txt อธิบายวิธีการของพวกเขา


0

ตกลงดังนั้น/etc/init.dเป็นสถานที่ที่คุณสามารถปรับใช้สคริปต์เริ่มต้นอย่างรวดเร็ว ขั้นตอนที่สองเพื่อเปิดใช้งานสคริปต์นี้คือการเรียกใช้chkconfigคำสั่ง สมมติว่าคุณรันchkconfig --add <yourscript>ลิงก์สัญลักษณ์จะถูกสร้างขึ้นระหว่าง/etc/init.d/<yourscript>และ/etc/rc.d/rcX.d/S50<script>ตัวอย่างเช่น. X ใน rcX.d แสดงถึงหมายเลข runlevel ของสคริปต์และ S50 แสดงประเภทสคริปต์ (มีสองประเภทเหล่านี้ S & K, S บอกให้ระบบเริ่มสคริปต์เมื่อบูทขึ้นและ K บอกให้ระบบ ออกจากสคริปต์อย่างสง่างามเมื่อคุณปิดตัวลงหมายเลขหลังจาก S / K แสดงถึงลำดับที่สิ่งเหล่านี้เกิดขึ้นในกรณีที่คุณมีสคริปต์บางอย่างที่ขึ้นอยู่กับคนอื่น ๆ กำลังทำงานอยู่ก่อน) โดยค่าเริ่มต้นหากไม่มีการระบุ runlevel ภายในสคริปต์หรือเมื่อคุณออกคำสั่ง runlevel CentOS6 จะสร้างสคริปต์ S50 สำหรับ runlevels 2,3,4,5 และ K50 สำหรับ runlevels 0,1,6

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.