<ก่อนหน้านี้ | Contents | ถัดไป>
สามารถพบคำอธิบายแบบเต็มของ GRUB ได้โดยการออก ข้อมูล ด้วง คำสั่งหรือที่เว็บไซต์ GRUB โครงการเอกสารลินุกซ์มี Multiboot พร้อม GRUB Mini-HOWTO
4.2.4. ในนั้น
เคอร์เนลเมื่อโหลดแล้วจะค้นหา init in ถังขยะ และดำเนินการมัน
เมื่อ init เริ่มต้น มันจะกลายเป็นพาเรนต์หรือปู่ย่าตายายของกระบวนการทั้งหมดที่เริ่มต้นโดยอัตโนมัติบนระบบ Linux ของคุณ สิ่งแรก init กำลังอ่านไฟล์เริ่มต้น / etc / inittab. สิ่งนี้สอนให้ init เพื่ออ่านสคริปต์การกำหนดค่าเริ่มต้นสำหรับสภาพแวดล้อม ซึ่งกำหนดเส้นทาง เริ่มสลับ ตรวจสอบระบบไฟล์ และอื่นๆ โดยพื้นฐานแล้ว ขั้นตอนนี้จะดูแลทุกอย่างที่ระบบของคุณต้องทำในการเริ่มต้นระบบ: การตั้งค่านาฬิกา การเริ่มต้นพอร์ตอนุกรม และอื่นๆ
แล้วก็ init ยังคงอ่าน / etc / inittab ซึ่งอธิบายวิธีที่ระบบควรตั้งค่าในแต่ละระดับการทำงานและตั้งค่าเริ่มต้น ระดับการวิ่ง. ระดับการทำงานคือการกำหนดค่าของกระบวนการ ระบบที่เหมือน UNIX ทั้งหมดสามารถรันในคอนฟิกูเรชันกระบวนการที่แตกต่างกัน เช่น โหมดผู้ใช้คนเดียว ซึ่งเรียกว่ารันระดับ 1 หรือรันระดับ S (หรือ s) ในโหมดนี้ เฉพาะผู้ดูแลระบบเท่านั้นที่สามารถเชื่อมต่อกับระบบได้ ใช้เพื่อดำเนินการบำรุงรักษาโดยไม่เสี่ยงต่อการทำลายระบบหรือข้อมูลผู้ใช้ โดยปกติในการกำหนดค่านี้ เราไม่จำเป็นต้องให้บริการผู้ใช้ ดังนั้นบริการทั้งหมดจะถูกปิดใช้งาน ระดับการรันอีกระดับหนึ่งคือระดับการรันการรีบูต หรือรันระดับ 6 ซึ่งปิดบริการที่รันอยู่ทั้งหมดตามขั้นตอนที่เหมาะสม จากนั้นรีสตาร์ทระบบ
ใช้ ใคร เพื่อตรวจสอบระดับการวิ่งปัจจุบันของคุณ:
วิลลี่@อูบุนตู:~$ ใคร -r
วิ่งระดับ 2 2006-10-17 23:22
สุดท้าย=S
วิลลี่@อูบุนตู:~$ ใคร -r
วิ่งระดับ 2 2006-10-17 23:22
ข้อมูลเพิ่มเติมเกี่ยวกับระดับการรันในหัวข้อถัดไป ดูหัวข้อ 4.2.5
หลังจากกำหนดระดับการทำงานเริ่มต้นสำหรับระบบของคุณแล้ว init เริ่มกระบวนการพื้นหลังทั้งหมดที่จำเป็นสำหรับระบบในการทำงานโดยดูจากกระบวนการที่เหมาะสม rc ไดเร็กทอรีสำหรับระดับการรันนั้น init รันสคริปต์การฆ่าแต่ละรายการ (ชื่อไฟล์ขึ้นต้นด้วย K) พร้อมพารามิเตอร์หยุด จากนั้นรันสคริปต์เริ่มต้นทั้งหมด (ชื่อไฟล์ขึ้นต้นด้วย S) ในไดเร็กทอรีระดับการทำงานที่เหมาะสม เพื่อให้บริการและแอปพลิเคชันทั้งหมดเริ่มทำงานอย่างถูกต้อง ที่จริงแล้ว คุณสามารถรันสคริปต์เดียวกันเหล่านี้ได้ด้วยตนเองหลังจากที่ระบบบูทเสร็จสิ้นด้วยคำสั่ง เช่น /etc/init.d/httpd หยุด or บริการ httpd หยุด เข้าสู่ระบบ as รากในกรณีนี้จะหยุด
เว็บเซิร์ฟเวอร์.
กรณีพิเศษ
โปรดทราบว่าเมื่อเริ่มต้นระบบ สคริปต์ใน อาร์ซี2.ดี และ อาร์ซี3.ดี มักจะถูกประหารชีวิต ในกรณีดังกล่าว จะไม่มีการหยุดให้บริการ (อย่างน้อยก็ไม่ถาวร) มีเพียงบริการที่เริ่มต้น
ไม่มีสคริปต์ใดที่เริ่มและหยุดบริการจริง ๆ อยู่ใน /etc/rc .NS. แต่ไฟล์ทั้งหมดใน /etc/rc .NS เป็นลิงก์สัญลักษณ์ที่ชี้ไปยังสคริปต์จริงที่อยู่ใน /etc/init.d. ลิงก์สัญลักษณ์ไม่มีอะไรมากไปกว่าไฟล์ที่ชี้ไปยังไฟล์อื่น และใช้ในกรณีนี้เนื่องจากสามารถสร้างและลบได้โดยไม่กระทบกับสคริปต์จริงที่ฆ่าหรือเริ่มบริการ ลิงก์สัญลักษณ์ไปยังสคริปต์ต่างๆ จะถูกกำหนดหมายเลขในลำดับเฉพาะเพื่อให้เริ่มในลำดับนั้น คุณสามารถเปลี่ยนลำดับที่บริการเริ่มต้นหรือหยุดให้บริการได้ด้วยการเปลี่ยนชื่อลิงก์สัญลักษณ์ที่อ้างอิงถึงสคริปต์ที่ควบคุมบริการจริงๆ คุณสามารถใช้หมายเลขเดิมได้หลายครั้งหากต้องการให้บริการใดบริการหนึ่งเริ่มหรือหยุดก่อนหรือหลังบริการอื่น ดังตัวอย่างด้านล่าง โดยระบุเนื้อหาของ
/etc/rc5.dที่นี่มี cron และ XFS เริ่มต้นจากชื่อลิงก์ที่ขึ้นต้นด้วย "S90" ในกรณีนี้ สคริปต์จะเริ่มตามลำดับตัวอักษร
[jean@blub /etc/rc5.d] ls K15httpd@ K45ชื่อ@ | S08ไอพีเชนส์@ | S25netfs@ | S85gpm@ |
K16rarpd@ K46radvd@ | S08iptables@ | S26apmd@ | S90ครอนด์@ |
K20nfs@ K61ldap@ | S09isdn@ | S28อัตโนมัติ@ | S90xfs@ |
K20rstatd@ K65identd@ | S10เครือข่าย@ | S30nscd@ | S95อนาครอน@ |
K20rusersd@ K74ntpd@ | S12syslog@ | S55sshd@ | S95atd@ |
K20rwalld@ K74ypserv@ | S13แผนที่พอร์ต@ | S56อุปกรณ์ดิบ@ | S97rhnsd@ |
K20rwhod@ K74ypxfrd@ | S14nfslock@ | S56xinetd@ | S99ท้องถิ่น@ |
K25ปลาหมึก@ K89bcm5820@ | S17คีย์เทเบิล@ | S60lpd@ | |
K34yppasswdd@ S05kudzu@ | S20สุ่ม@ | S80ส่งเมล@ |
หลังจาก init ได้ผ่านระดับการวิ่งเพื่อไปยังระดับการวิ่งเริ่มต้น the / etc / inittab ส้อมสคริปต์ a เก็ตตี้ กระบวนการสำหรับแต่ละคอนโซลเสมือน (พร้อมท์ให้เข้าสู่ระบบในโหมดข้อความ) เก็ตตี้ เปิด tty บรรทัด ตั้งค่าโหมด พิมพ์พร้อมท์การเข้าสู่ระบบ รับชื่อผู้ใช้ และจากนั้นเริ่มกระบวนการเข้าสู่ระบบสำหรับผู้ใช้รายนั้น ซึ่งช่วยให้ผู้ใช้สามารถยืนยันตัวตนกับระบบและใช้งานได้ โดยค่าเริ่มต้น ระบบส่วนใหญ่มีคอนโซลเสมือน 6 ตัว แต่อย่างที่คุณเห็นจาก แท็บเริ่มต้น ไฟล์นี้สามารถกำหนดค่าได้
/ etc / inittab ยังสามารถบอกได้ init วิธีจัดการกับผู้ใช้กด Ctrl+อื่น ๆ+ลบ ที่คอนโซล เนื่องจากระบบควรปิดและรีสตาร์ทอย่างเหมาะสม แทนที่จะเปิดเครื่องในทันที init ถูกสั่งให้ดำเนินการตามคำสั่ง /sbin/ปิดระบบ -t3 -ร ตอนนี้เช่น เมื่อผู้ใช้กดปุ่มเหล่านั้น นอกจากนี้,
/ etc / inittab ระบุว่าอะไร init ควรทำในกรณีที่ไฟฟ้าขัดข้อง หากระบบของคุณมีเครื่อง UPS ติดอยู่
ในระบบที่ใช้ RPM ส่วนใหญ่ หน้าจอการเข้าสู่ระบบแบบกราฟิกจะเริ่มต้นในการรันระดับ 5 โดยที่ / etc / inittab เรียกใช้สคริปต์ที่เรียกว่า /etc/X11/prefdmส่วน คำนำหน้านาม สคริปต์เรียกใช้ตัวจัดการการแสดงผล X ที่ต้องการตามเนื้อหาของ /etc/sysconfig/desktop ไดเร็กทอรี โดยปกติแล้ว GDM ถ้าคุณเรียกใช้ GNOME หรือ กม หากคุณเรียกใช้ KDE แต่สามารถผสมกันได้ และยังมี xdm ที่มาพร้อมกับการติดตั้ง X มาตรฐาน
แต่ยังมีความเป็นไปได้อื่น ๆ เช่นกัน ตัวอย่างเช่น บน Debian มี initscript สำหรับแต่ละตัวจัดการการแสดงผล และเนื้อหาของ /etc/X11/default-display-manager ใช้เพื่อกำหนดว่าจะเริ่มต้นอันไหน ข้อมูลเพิ่มเติมเกี่ยวกับอินเทอร์เฟซแบบกราฟิกสามารถอ่านได้ในหัวข้อ 7.3 ในที่สุด เอกสารระบบของคุณจะอธิบายรายละเอียดเกี่ยวกับแง่มุมระดับสูงของ init.
การขอ / etc / default และ / หรือ /etc/sysconfig.php ไดเร็กทอรีมีรายการสำหรับฟังก์ชันและบริการต่างๆ ซึ่งทั้งหมดจะอ่านได้ในขณะบู๊ต ตำแหน่งของไดเร็กทอรีที่มีค่าเริ่มต้นของระบบอาจแตกต่างกันบ้างขึ้นอยู่กับการแจกจ่าย Linux ของคุณ
นอกจากสภาพแวดล้อมของผู้ใช้แบบกราฟิกแล้ว บริการอื่นๆ อีกมากอาจเริ่มต้นได้เช่นกัน แต่ถ้าทุกอย่างเป็นไปด้วยดี คุณควรดูที่พรอมต์การเข้าสู่ระบบหรือหน้าจอการเข้าสู่ระบบเมื่อกระบวนการบูตเสร็จสิ้น