บริการของระบบเริ่มต้นอย่างไรในเวลา 12.10 น.


12

สิ่งหนึ่งที่ทำให้ฉันสับสนใน Ubuntu เสมอคือการเริ่มต้นบริการของระบบ ฉันรู้ว่าอูบุนตูใช้ Upstart และรองรับ SysV แต่อันไหนที่ใช้เพื่อเริ่มบริการ เรื่องนี้เกิดขึ้นเมื่อคุณต้องการเริ่มต้น "บริการ" ด้วยตนเอง

ตัวอย่างเช่นในระบบของฉันฉันมีไฟล์สำหรับบริการต่อไปนี้ทั้งใน/etc/init.d/<service>(SysV) และ/etc/init/<service>.conf(พุ่งพรวด):

acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin

ดังนั้นหากฉันต้องการปิดการใช้งาน MySQL เมื่อเริ่มต้นฉันต้องใช้วิธีการพุ่งพรวดหรือวิธี SysV เพื่อปิดการใช้งานหรือไม่ นอกจากนี้ฉันจะบอกได้อย่างไรว่าสิ่งใดบ้างที่ใช้ในการเริ่มบริการทั่วไป

แก้ไข

ข้อสงสัยจริงๆที่นี่ไม่ใช่วิธีการปิด / เปิดใช้งานบริการโดยใช้ SysV / Upstart สิ่งที่ทำให้ฉันสับสนจริงๆคือบริการบางอย่างดูเหมือนจะถูกกำหนด (และเปิดใช้งาน) ใน SysV และพุ่งพรวดในเวลาเดียวกัน มีความสำคัญระหว่างพวกเขา (เช่นถ้าmysqlเปิดใช้งานทั้งในการเปิดใช้โดยใช้ SysV)? หรือเป็นกรณีที่เครื่องมือหนึ่งใช้อีกอันหนึ่งเป็นแบ็คกราวน์?


1
ดูคำตอบที่ยอมรับได้ที่นี่: askubuntu.com/questions/133807/…มีลิงก์ที่น่าสนใจ
Rinzwind

คำตอบ:


2

เกี่ยวกับบริการที่กำหนดไว้ในทั้ง SysV และพุ่งพรวดโดยทั่วไปถ้าคุณรีสตาร์ทผ่าน SysV คุณจะเห็นสิ่งนี้:

al@al-mythtv:~$ sudo /etc/init.d/mysql restart
[sudo] password for al: 
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 29846

สิ่งที่ฉันใช้เพื่อหมายถึงคือพุ่งพรวดเป็นที่ต้องการสำหรับบริการเหล่านี้และการใช้ SysV เป็นเพียงเสื้อคลุม

นอกจากนี้ฉันคิดว่าคุณมีความหมายของไดเรกทอรีย้อนหลัง / etc / init คือการกำหนดค่าที่พุ่งพรวด / etc / init.d เป็นความเข้ากันได้ของ SysV แต่มันเป็นเพียงการเชื่อมโยงไปยังการเริ่มต้นสำหรับบริการประเภทนี้


6

ส่วนใหญ่ขึ้นอยู่กับแอปพลิเคชันและผู้ดูแลบรรจุภัณฑ์

มีการตั้งค่าที่แข็งแกร่งสำหรับสคริปต์ Upstart เพราะพวกเขาจัดการกับเหตุการณ์ (ซึ่งโดยทั่วไปเป็นสิ่งที่ดี) แต่แอปพลิเคชันจำนวนมากไม่มีสคริปต์ Upstart ที่ดีพอที่มีอยู่หรือผู้ดูแลระบบของแอปพลิเคชันได้เลือกที่จะยึดติดกับค่าเริ่มต้น .

ทั้งสองวิธีคุณอยู่ในตำแหน่งที่คุณต้องปรับตัว

  • สำหรับคนธรรมดา:
    • เปลี่ยนชื่อไฟล์เป็นสิ่งที่ไม่สิ้นสุด.confหรือ
    • เพิ่มmanualไปยังไฟล์ วิธีนี้จะช่วยให้คุณโหลดบริการได้ด้วยตนเอง
  • สำหรับบริการเก่า:

    update-rc.d -f <service> remove
    

หากคุณมี/etc/init.d/สคริปต์สำหรับบางสิ่งบางอย่างและ/etc/init/สคริปต์และคุณต้องการตรวจสอบว่ารุ่น init.d ยังคงอยู่คุณสามารถตรวจสอบกับ:

ls -l /etc/rc?.d/*<service>

หากคุณเห็น symlink จำนวนมากลิงก์นั้นจะถูกติดตั้งใน SysV init ตัวเก่า


ดังนั้นหากฉันมีบริการที่เปิดใช้งานใน SysV และ Upstart (ตัวอย่างเช่นacpid) ฉันสามารถสันนิษฐานได้ว่า SysV เปิดตัวหรือไม่ หรือถ้าฉันต้องการปิดการใช้งานฉันจะต้องใช้update-rc.dและเปลี่ยนชื่อเคล็ดลับ?
เซเลม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.