วิธีการลบ / สำรองสคริปต์จาก /etc/init.d/?


24

ฉันทำงานกับ linux มาระยะหนึ่งแล้ว แต่ค่อนข้างง่าย

ฉันเข้าใจว่าสคริปต์ในinit.dจะดำเนินการเมื่อระบบปฏิบัติการเริ่มต้น แต่มันทำงานอย่างไร

ถ้าฉันต้องการเก็บสคริปต์ แต่ไม่ต้องการให้สคริปต์เริ่มโดยอัตโนมัติ

บอกว่าฉันมี/etc/init.d/varnishและต้องการที่จะปิดการใช้งานชั่วคราว ฉันจะแน่ใจได้อย่างไรว่ามันจะไม่เริ่มต้นหากระบบปฏิบัติการรีบูต ฉันไม่ต้องการลบสคริปต์ จะทำอย่างไรถ้าฉันต้องการเพิ่มอีกครั้ง

คำตอบ:


34

มีสองวิธี หากคุณต้องการทำสิ่งนี้ชั่วคราวคุณสามารถลบบิตการเรียกใช้ออกจากไฟล์:

$ chmod -x /etc/init.d/varnish

จากนั้นเพิ่มใหม่อีกครั้งตามความเหมาะสม:

$ chmod +x /etc/init.d/varnish

อย่างไรก็ตามวิธี "เป็นทางการ" ใน Ubuntu (เช่นเดียวกับ Debian และอนุพันธ์ Debian อื่น ๆ ) แม้ว่าจะใช้update-rc.dคำสั่ง:

$ update-rc.d varnish disable

การดำเนินการนี้จะลบ symlink ทั้งหมดออกจากโฟลเดอร์ /etc/rcX.d ซึ่งดูแลการเริ่มและหยุดบริการตามความเหมาะสม

ดูที่หน้า man update-rc.dสำหรับข้อมูลเพิ่มเติม


ขอบคุณสำหรับการตอบรับที่ยอดเยี่ยม! chmodเป็นทางออกที่ง่าย! ฉันเริ่มอ่านmanpages.ubuntu.com/manpages/precise/man8/update-rc.d.8.htmlและช่วยให้ฉันเข้าใจ init ฉันคิดว่า ... ฉันควรอ่านคู่มือเพิ่มเติม
iDev247

ดีใจที่ได้ช่วยเหลือ ฉันควรทราบว่าการแก้ปัญหา chmod ควรเพียง แต่นำมาใช้มากชั่วคราว ฉันยังไม่ได้ตรวจสอบสิ่งนี้ แต่ฉันเห็นระบบพุ่งพรวด (สิ่งที่ Ubuntu ใช้ในการเริ่ม / หยุดกระบวนการโดยอัตโนมัติ) ทำให้เกิดความสับสน
EEAA

9
$ sudo update-rc.d -f servicename remove

1
คำตอบนี้ไม่ตรงกับคำถามที่ต้องการเก็บสคริปต์ “เมื่อเรียกด้วยตัวเลือกลบ, update-rc.dลบการเชื่อมโยงใด ๆ ในไดเรกทอรีสคริปต์/etc/rcrunlevel.d /etc/init.d/nameต้องลบสคริปต์นี้แล้ว” manpages.ubuntu.com/manpages/xenial/en/man8/update-rc.d.8.html
Melebius
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.