Ubuntu ใช้Upstart
แทนinit
ระบบดั้งเดิม พุ่งพรวดแข็งแกร่งกว่า init แต่มันซับซ้อนกว่าinit
เล็กน้อย
ตรงกันข้ามพุ่งพรวดเป็นไปตามเหตุการณ์ "เหตุการณ์" อาจเป็นอะไรบางอย่างเช่น "การบูท" ... หรืออาจเฉพาะเจาะจงมากขึ้นเช่น "เครือข่ายพร้อมใช้งานทันที" คุณสามารถระบุสคริปต์ที่ขึ้นอยู่กับเหตุการณ์ใด สิ่งใดก็ตามที่ไม่รอเหตุการณ์สามารถเรียกใช้เมื่อใดก็ตามที่มี CPU
ระบบที่อิงกับเหตุการณ์นี้มีข้อดีอีกประการหนึ่งคือคุณสามารถใช้ตามหลักวิชาได้แม้ว่าระบบจะเริ่มทำงาน พุ่งพรวดในที่สุดก็มีกำหนดที่จะผ่านงานเช่นหรือเสียบอุปกรณ์ภายนอกเช่นไดรฟ์หัวแม่มือ (ปัจจุบันจัดการโดย udev และฮาล) หรือเรียกใช้โปรแกรมในเวลาที่กำหนด (cron จัดการในปัจจุบัน)
อย่างที่คุณควรรู้ในตอนนี้เดมอนที่ตายแล้ว (ที่ไม่ได้ทำงานเมื่อเริ่มต้น) อาจยังมีชีวิตอยู่และเริ่มต้นเนื่องจากเหตุการณ์
Ubuntu มีทั้ง / etc / init สำหรับ Upstart และ /etc/init.d สำหรับไฟล์ SysV เก่า ไฟล์บางส่วนในนั้นเป็นสคริปต์ SysV Init ปกติที่ยังไม่ได้ย้ายข้อมูล แต่บริการบางอย่างที่โอนย้ายดูแลรักษาลิงก์จาก /etc/init.d เป็น / lib / init / upstart-job หากคุณเรียกใช้หนึ่งในนั้นมันใช้งานได้ แต่มันจะพิมพ์คำเตือนก่อน:
แทนที่จะเรียกใช้สคริปต์เริ่มต้นผ่าน /etc/init.d ให้ใช้ยูทิลิตี service (8) เช่น service mysql restart
เนื่องจากสคริปต์ที่คุณพยายามเรียกใช้ถูกแปลงเป็นงานพุ่งพรวดคุณอาจใช้ยูทิลิตี้รีสตาร์ท (8) เช่นเริ่ม mysql
บนเครื่องพุ่งพรวด init มาจากการพุ่งพรวด แทนที่จะเรียกใช้สคริปต์ rc หลักที่เรียกใช้สคริปต์สำหรับ runlevel เฉพาะเจาะจง init ของ Upstart จะรับงานจากไดเรกทอรีงานของตน
ตอนนี้เรารู้แล้วว่าไม่มีวิธีง่ายๆในการแสดงรายการ autostart daemons คุณควรทำรายการ daemons ทั้งหมดและตรวจสอบทีละรายการ ภูตอาจเริ่มต้นโดยinit
หรือโดยupstart
หรือแม้กระทั่งโดยเหตุการณ์ในภายหลัง
วิธีที่ง่ายที่สุดในการรับรายการนี้คือการรันคำสั่งนี้ในเชลล์:
initctl show-config
ผลลัพธ์มีลักษณะดังนี้:
...
hostname
start on startup
udevtrigger
start on ((startup and started udev) and not-container)
tty2
start on (runlevel [23] and ((not-container or container CONTAINER=lxc) or container CONTAINER=lxc-libvirt))
...
รายการบางอย่างเช่นรายการแรกนั้นเรียบง่ายhostname
เริ่มต้นเมื่อเริ่มต้น แต่รายการอื่น ๆ อาจดูซับซ้อนกว่านี้ (แต่โชคดีที่มนุษย์อ่านได้ :-))
chkconfig --list
จะทำงานใช่ไหมon
หมายความว่าบริการกำลังทำงานอยู่บน runlevel นั้นและบริการนั้นจะเริ่มต้นโดยอัตโนมัติเมื่อบูตระบบ