Skip to main content

Inittab-Linux / Unix Command

10.3 Init System and Run Levels (มิถุนายน 2026)

10.3 Init System and Run Levels (มิถุนายน 2026)
Anonim

inittab - รูปแบบของไฟล์ inittab ที่ใช้โดยกระบวนการ init init ที่เข้ากันได้กับ sysv

ลักษณะ

inittab อธิบายถึงกระบวนการที่เริ่มทำงานเมื่อบูตเครื่องและระหว่างการทำงานตามปกติ (เช่น /etc/init.d/boot, /etc/init.d/rc, gettys … )ในนั้น(8) แยกหลาย ๆrunlevelsซึ่งแต่ละชุดสามารถมีชุดของกระบวนการที่เริ่มต้นได้ runlevel ที่ถูกต้องคือ0-6 บวก, B, และC สำหรับตามความต้องการ รายการ. รายการในinittab ไฟล์มีรูปแบบดังนี้:

ID: runlevels: การกระทำ: กระบวนการ

เส้นที่ขึ้นต้นด้วย `# 'จะถูกละเลย

รหัส เป็นลำดับที่ไม่ซ้ำกันซึ่งมีอักขระ 1-4 ตัวซึ่งระบุถึงรายการเข้าinittab(สำหรับเวอร์ชัน sysvinit ที่รวบรวมด้วยไลบรารี <5.2.18 หรือ a.out libraries ขีด จำกัด คือ 2 ตัวอักษร)

หมายเหตุ: สำหรับ gettys หรือกระบวนการเข้าสู่ระบบอื่น ๆรหัส ฟิลด์ควรเป็นส่วนต่อท้าย tty ของ tty ที่สอดคล้องกันเช่น1 สำหรับtty1. มิฉะนั้นบัญชีการเข้าสู่ระบบอาจทำงานไม่ถูกต้อง

runlevelsแสดงระดับการทำงานที่ต้องดำเนินการตามที่ระบุ

การกระทำอธิบายว่าควรดำเนินการใด

กระบวนการระบุกระบวนการที่จะดำเนินการ ถ้าฟิลด์กระบวนการเริ่มต้นด้วยตัวอักษร `+ 'ในนั้นจะไม่ทำบัญชี utmp และ wtmp สำหรับกระบวนการนั้น นี้เป็นสิ่งจำเป็นสำหรับ gettys ที่ยืนยันในการทำดูแลทำความสะอาด utmp / wtmp ของตัวเอง นี่เป็นข้อบกพร่องทางประวัติศาสตร์

runlevels ฟิลด์อาจมีอักขระหลายตัวสำหรับระดับการทำงานที่แตกต่างกัน ตัวอย่างเช่น,123 ระบุว่าควรเริ่มต้นกระบวนการใน runlevels 1, 2 และ 3runlevels สำหรับตามความต้องการรายการอาจมีก, B, หรือC.runlevels ที่ดินของsysinit, รองเท้า, และbootwait รายการจะถูกละเว้น

เมื่อ runlevel ของระบบมีการเปลี่ยนแปลงกระบวนการทำงานใด ๆ ที่ไม่ได้ระบุสำหรับระดับการทำงานใหม่จะถูกฆ่าก่อนอื่นโดยใช้ SIGTERM แล้วกับ SIGKILL

การดำเนินการที่ถูกต้องสำหรับการกระทำ ฟิลด์คือ:

respawn

กระบวนการนี้จะเริ่มต้นใหม่ทุกครั้งที่สิ้นสุด (เช่น getty)

รอ

กระบวนการนี้จะเริ่มต้นเมื่อมีการระบุระดับการทำงานที่ระบุและในนั้นจะรอการบอกเลิกสัญญา

ครั้งหนึ่ง

กระบวนการนี้จะดำเนินการหนึ่งครั้งเมื่อป้อนระดับการทำงานที่ระบุ

รองเท้า

กระบวนการนี้จะดำเนินการระหว่างการบูตระบบ runlevels ฟิลด์จะถูกละเว้น

bootwait

กระบวนการนี้จะดำเนินการระหว่างการบูตระบบในขณะที่ในนั้นรอการยกเลิก (เช่น / etc / rc) runlevels ฟิลด์จะถูกละเว้น

ปิด

นี้ไม่มีอะไร

ตามความต้องการ

กระบวนการที่มีเครื่องหมาย aตามความต้องการ runlevel จะถูกดำเนินการเมื่อใดก็ตามที่ระบุตามความต้องการ runlevel เรียกว่า อย่างไรก็ตามไม่มีการเปลี่ยนแปลงระดับการทำงาน (runlevel change) จะเกิดขึ้น (ตามความต้องการ runlevels คือ `a ',' b 'และ' c ')

initdefault

initdefault รายการระบุ runlevel ที่ควรจะป้อนหลังจากการบูตระบบ ถ้าไม่มีอยู่,ในนั้น จะถามระดับการทำงานบนคอนโซล กระบวนการ ฟิลด์จะถูกละเว้น

sysinit

กระบวนการนี้จะดำเนินการระหว่างการบูตระบบ จะดำเนินการก่อน ๆรองเท้า หรือbootwait รายการ.runlevels ฟิลด์จะถูกละเว้น

powerwait

กระบวนการจะทำงานเมื่อไฟดับลง Init มักจะได้รับแจ้งเกี่ยวกับเรื่องนี้โดยกระบวนการพูดคุยกับ UPS ที่เชื่อมต่ออยู่กับคอมพิวเตอร์ในนั้น จะรอให้กระบวนการดำเนินการเสร็จสิ้นก่อนดำเนินการต่อ

powerfail

ส่วนpowerwaitยกเว้นที่ในนั้น ไม่รอให้กระบวนการเสร็จสิ้น

powerokwait

กระบวนการนี้จะดำเนินการโดยเร็วที่สุดในนั้น เป็น informormed ว่าอำนาจได้รับการเรียกคืน

powerfailnow

กระบวนการนี้จะดำเนินการเมื่อในนั้น จะแจ้งให้ทราบว่าแบตเตอรีของ UPS ภายนอกแทบจะว่างเปล่าและกำลังไฟดับ (โดยที่ UPS ภายนอกและกระบวนการตรวจสอบสามารถตรวจจับสภาวะนี้ได้)

ctrlaltdel

กระบวนการจะดำเนินการเมื่อในนั้น รับสัญญาณ SIGINT ซึ่งหมายความว่ามีคนในคอนโซลระบบกดปุ่มCTRL-ALT-DEL คีย์ผสม โดยทั่วไปหนึ่งต้องการที่จะดำเนินการบางอย่างปิดตัวลง ทั้งเพื่อเข้าสู่ระดับผู้ใช้คนเดียวหรือเพื่อรีบูตเครื่องใหม่

kbrequest

กระบวนการจะดำเนินการเมื่อในนั้น ได้รับสัญญาณจากเครื่องจัดการแป้นพิมพ์ที่คีย์ผสมพิเศษถูกกดบนคอนโซลคีย์บอร์ด

เอกสารสำหรับฟังก์ชั่นนี้ยังไม่สมบูรณ์ เอกสารเพิ่มเติมสามารถพบได้ในแพคเกจ kbd-x.xx (ล่าสุดคือ kbd-0.94 ในขณะเขียนบทความนี้) โดยทั่วไปคุณต้องการจับคู่แป้นพิมพ์บางส่วนกับการกระทำ "KeyboardSignal" ตัวอย่างเช่นในการทำแผนที่ Alt-Uparrow สำหรับจุดประสงค์นี้ให้ใช้ข้อมูลต่อไปนี้ในไฟล์ keymaps ของคุณ:

แป้นพิมพ์ alt 70 = KeyboardSignal

ตัวอย่าง

นี่เป็นตัวอย่างของ inittab ซึ่งมีลักษณะคล้ายกับลีนุกซ์ inittab เก่า:

# inittab สำหรับ linux id: 1: initdefault: rc :: bootwait: / etc / rc 1: 1: respawn: / etc / getty 9600 tty1 2: 1: respawn: / etc / getty 9600 tty2 3: 1: respawn: etc / getty 9600 tty3 4: 1: respawn: / etc / getty 9600 tty4

ไฟล์ inittab นี้ทำงาน/ etc / RC ระหว่างการบู๊ตและเริ่ม gettys บน tty1-tty4

มีความซับซ้อนมากขึ้นinittab มี runlevel ที่แตกต่างกัน (ดูความคิดเห็นภายใน):

# ระดับเพื่อใช้ใน id: 2: initdefault: # การเริ่มต้นระบบก่อนสิ่งอื่น si :: sysinit: /etc/rc.d/bcheckrc # Runlevel 0,6 ถูกหยุดและรีบูตเครื่อง, 1 คือโหมดการบำรุงรักษา l0: 0: รอ: /etc/rc.d/rc.halt l1: 1: รอ: /etc/rc.d/rc.single l2: 2345: รอ: /etc/rc.d/rc.multi l6: 6: wait: /etc/rc.d/rc.reboot # จะทำอย่างไรใน "3 salute salute" ca :: ctrlaltdel: / sbin / shutdown -t5 -rf now # Runlevel 2 & 3: getty บนคอนโซลระดับ 3 ยัง getty บนพอร์ตโมเด็ม 1: 23: respawn: / sbin / getty tty1 vc linux 2: 23: respawn: / sbin / getty tty2 VC linux 3: 23: respawn: / sbin / getty tty3 VC linux 4: 23: respawn: / sbin / getty tty4 VC linux S2: 3: respawn: / sbin / uugetty ttyS2 M19200

ดูสิ่งนี้ด้วย

ในนั้น(8), telinit(8)

สำคัญ: ใช้ ชาย คำสั่ง ( % ชาย ) เพื่อดูว่ามีการใช้คำสั่งใดในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ