Inittab-Linux / Unix Command

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

ลักษณะ

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

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

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

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

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

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

การกระทำ อธิบายถึงการกระทำที่ควรดำเนินการ

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

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

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

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

respawn

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

รอ

กระบวนการนี้จะเริ่มต้นเมื่อมีการป้อน runlevel ที่ระบุไว้และ init จะรอการสิ้นสุด

ครั้งหนึ่ง

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

รองเท้า

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

bootwait

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

ปิด

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

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

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

initdefault

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

sysinit

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

powerwait

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

powerfail

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

powerokwait

กระบวนการนี้จะดำเนินการทันทีที่ init ได้รับการแจ้งเตือนว่ามีการกู้คืนพลังงานแล้ว

powerfailnow

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

ctrlaltdel

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

kbrequest

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

เอกสารสำหรับฟังก์ชั่นนี้ยังไม่สมบูรณ์ เอกสารเพิ่มเติมสามารถพบได้ในแพคเกจ 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 ซับซ้อนมากขึ้นกับ runlevels ที่แตกต่างกัน (ดูความคิดเห็นภายใน):

# ระดับเพื่อใช้ใน 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

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

init (8), telinit ( 8)

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