ปัจจุบันมี 3 ระบบเริ่มต้นหลักที่ใช้โดย linux ไม่กี่ปีที่ผ่านมามีเพียงหนึ่ง SysVinit แต่ SysVinit ยังขาดความสามารถอย่างจริงจังเช่นกราฟการพึ่งพาบริการดังนั้นตอนนี้จึงถูกคัดค้านใน distros ส่วนใหญ่ ปัจจุบัน distros ส่วนใหญ่จะเปลี่ยนไปใช้systemd แม้ว่าจะมียังพุ่งพรวด
แต่นี่คือคำตอบสำหรับคำถามของคุณสำหรับระบบเริ่มต้น 3 ระบบ:
sysvinit
SysVinit ปัจจุบันใช้โดย Debian และ RedHat แม้ว่า RedHat รุ่นต่อไป (7) จะใช้ systemd
วิธีการเปิดใช้งานบริการ SysVinit แบบไม่ต่อเนื่องในการบู๊ตคือการเชื่อมโยงเข้าด้วยกันใน/etc/rc3.d
(หรือ/etc/rc2.d
) /etc/init.d
บริการทั้งหมดสามารถพบได้ใน อย่างไรก็ตามโปรดทราบว่า distros มักจะมีเครื่องมือของตนเองสำหรับจัดการไฟล์เหล่านี้และควรใช้เครื่องมือนั้นแทน (Fedora / RedHat มีservice
และchkconfig
, ubuntu มีupdate-rc.d
)
บริการรายการ:
ls /etc/init.d/
เริ่มบริการ:
/etc/init.d/{SERVICENAME} start
หรือ
service {SERVICENAME} start
หยุดบริการ:
/etc/init.d/{SERVICENAME} stop
หรือ
service {SERVICENAME} stop
เปิดใช้งานบริการ:
cd /etc/rc3.d
ln -s ../init.d/{SERVICENAME} S95{SERVICENAME}
( S95
ใช้เพื่อระบุคำสั่งซื้อ S01 จะเริ่มก่อน S02 เป็นต้น)
ปิดการใช้งานบริการ:
rm /etc/rc3.d/*{SERVICENAME}
Systemd
การกระจายที่โดดเด่นที่สุดโดยใช้ systemd คือ Fedora แม้ว่ามันจะถูกใช้โดยคนอื่น ๆ อีกมากมาย นอกจากนี้เมื่อ Debian เลือกที่จะใช้ systemd overstart มันจะกลายเป็นระบบ defacto upstart สำหรับการแจกแจงส่วนใหญ่ (Ubuntu ได้ประกาศไปแล้วว่าพวกเขาจะปล่อย upstart สำหรับ systemd)
บริการรายการ:
systemctl list-unit-files
เริ่มบริการ:
systemctl start {SERVICENAME}
หยุดบริการ:
systemctl stop {SERVICENAME}
เปิดใช้งานบริการ:
systemctl enable {SERVICENAME}
ปิดการใช้งานบริการ:
systemctl disable {SERVICENAME}
พุ่งพรวด
พุ่งพรวดได้รับการพัฒนาโดยคนอูบุนตู แต่หลังจากที่เดเบียนตัดสินใจจะไปกับ systemd , อูบุนตูประกาศว่าพวกเขาจะลดลงพุ่งพรวด
คนธรรมดาก็ใช้ RedHat สั้น ๆ ในขณะที่มันอยู่ใน RHEL-6 แต่มันก็ไม่ได้ใช้กันทั่วไป
บริการรายการ:
initctl list
เริ่มบริการ:
initctl start {SERVICENAME}
หยุดบริการ:
initctl stop {SERVICENAME}
เปิดใช้งานบริการ:
2 วิธีน่าเสียดาย:
จะมีไฟล์ที่มีบรรทัด/etc/default/{SERVICENAME}
เปลี่ยนบรรทัดนี้ENABLED=...
ENABLED=1
/etc/init/{SERVICENAME}.override
จะมีไฟล์ ตรวจสอบให้แน่ใจว่ามันมีstart
(หรือขาดทั้งหมด) manual
ไม่ได้
ปิดการใช้งานบริการ:
echo manual > /etc/init/{SERVICENAME}.override
หมายเหตุ: นอกจากนี้ยังมีระบบเริ่มต้น 'OpenRC' ซึ่งใช้โดย Gentoo ปัจจุบัน Gentoo เป็น distro เดียวที่ใช้งานและไม่ได้รับการพิจารณาสำหรับการใช้งานหรือสนับสนุนโดย distro อื่น ๆ ดังนั้นฉันจึงไม่ครอบคลุมถึงการใช้งาน (แม้ว่าความคิดเห็นจะเป็นอย่างไรฉันสามารถเพิ่มได้)