ฉันจะหยุด Apache2 ไม่ให้เริ่มโดยอัตโนมัติเมื่อบูตได้อย่างไร


173

ฉันจะหยุด Apache2 ไม่ให้เริ่มโดยอัตโนมัติเมื่อบูตได้อย่างไร ฉันไม่สามารถหาตัวเลือกที่ปิดใช้งานการเริ่มต้นอัตโนมัติเมื่อฉันเปิดเครื่อง


1
บางทีบางคนอาจมีความเฉพาะเจาะจงมากขึ้น แต่ฉันสามารถชี้คุณไปในทิศทางที่ถูกต้อง ... ใน / etc มีไดเรกทอรีสำหรับ rc * .d ซึ่งมีสคริปต์เริ่ม / หยุดทั้งหมดที่เรียกว่าฉันคิดว่าสคริปต์เริ่มต้น คุณจะเห็นลิงก์ไปยังสคริปต์ที่อยู่ใน /etc/init.d และเริ่มต้นด้วย "k" หรือ "s", สำหรับ "kill" หรือ "start" และหมายเลขที่เรียงตามลำดับ
Marty ผัด

ใช่ฉันรู้เกี่ยวกับไดเร็กตอรี่ /etc/rcX.d แต่ฉันค้นหามันเพื่อหาข้อมูลเกี่ยวกับเครื่องมือที่ดีกว่ากว่าแค่เปลี่ยนชื่อไฟล์ด้วยตนเอง (อายุการใช้งานสั้นเกินไป) update-rc.dได้เติมช่องว่างนี้แล้ว
Tomasz Gandor

คำตอบ:


160

ภายใต้โฟลเดอร์/etc/init.d/คุณจะพบสคริปต์เริ่มต้นทั้งหมดสำหรับบริการบู๊ตต่างๆเช่น apache2, ระบบเครือข่าย ฯลฯ

ขึ้นอยู่กับว่าคอมพิวเตอร์เริ่มทำงานในระดับใดบริการต่าง ๆ จะเริ่มขึ้น ดังนั้นจาก/etc/init.d/แต่ละโฟลเดอร์ "บริการ" เชื่อมโยงกับหนึ่ง / หลาย / ไม่มีโฟลเดอร์วิ่งระดับชื่อจากไปrc0.drc6.d

เพื่อให้ง่ายขึ้นมีเครื่องมือสำหรับการลบ / เพิ่มลิงค์เหล่านี้ดังนั้นการลบหรือเพิ่มสคริปต์ไปยังและจากการเริ่มต้นขึ้น

หากต้องการปิดใช้งาน apache2 เพียงพิมพ์:

sudo update-rc.d apache2 disable

สิ่งนี้ปิดใช้งาน apache2 เมื่อเริ่มต้น แต่ไม่ถูกลบเพื่อให้สามารถเปิดใช้งานได้อีกครั้ง ในการลบสคริปต์เริ่มทำงาน apache2 ให้ทำดังนี้:

หากต้องการลบ apache2 เพียงพิมพ์:

sudo update-rc.d -f  apache2 remove

การทำเช่นนี้จะทำให้โฟลเดอร์ runlevel ทั้งหมดที่เชื่อมโยงกับ apache2 ถูกลบออก


2
chkconfig อาจช่วย - "chkconfig {service_name} ปิด"
MCR

ไม่ทำงานอีกต่อไป:The script you are attempting to invoke has been converted to an Upstart job, but lsb-header is not supported for Upstart jobs. (...)
TomDogg

2
@TomDogg คุณสามารถระบุรุ่นที่คุณใช้งานได้หรือไม่? คำตอบนี้ใช้ได้กับ Apache 2 บน Ubuntu 14.04.3
Dale Anderson

1
จะคืนค่าบริการอย่างไร
Eugen Konkov

9
คำเตือน! สิ่งนี้จะลบบริการ! sudo update-rc.d apache2 disableใช้
Eduardo Cuomo

194

คุณสามารถปิดการใช้งานโดย:

sudo update-rc.d apache2 disable

จากนั้นหากคุณต้องการเปิดใช้งานอีกครั้ง:

sudo update-rc.d apache2 enable

ขึ้นอยู่กับโครงการที่ฉันกำลังดำเนินการอยู่มันมีประโยชน์ที่จะมีบริการที่สะดวกหากฉันต้องการเปิดใช้งานอีกครั้ง


4
enableทำให้ฉันมีข้อผิดพลาดเช่นrunlevel arguments (none) do not match LSB Default-Start valuesแต่sudo update-rc.d apache2 defaultsดูเหมือนจะเปิดใช้งานได้สำเร็จ
ที่นี่

2
@here sudo update-rc.d apache2 enableเล่นตามที่คาดไว้สำหรับฉัน
จอร์ Pligoropoulos

1
บน Ubuntu เชื่อถือบอกฉันว่า "การปิดใช้งาน | เปิดใช้งาน API ไม่เสถียรและอาจมีการเปลี่ยนแปลงในอนาคต"
แทนเนอร์

1
ไม่ทำงาน error: no runlevel symlinks to modify, aborting!- อย่างไรก็ตาม apache2 กำลังทำงานและเริ่มใหม่อัตโนมัติ
Daniel Kmak

ไม่ทำงานอีกต่อไป:update-rc.d: error: no runlevel symlinks to modify, aborting!
TomDogg

55

ด้วยsystemdตอนนี้เราสามารถใช้systemctlคำสั่งเพื่อป้องกันไม่ให้บริการเริ่มต้นโดยอัตโนมัติเมื่อบูต

นี่คือตัวอย่าง:

sudo systemctl disable apache2

คุณจะยังสามารถเริ่มและหยุดบริการได้ แต่จะไม่เริ่มต้นเมื่อเริ่มระบบ


2
Linux Mint ยังคงใช้ Ubuntu 14.04 Ubuntu เริ่มใช้ systemd จาก 15.04 ใน
twan163

1
@dragonmnl ตามที่ twan163 กล่าวว่า systemd สำหรับเวอร์ชั่นใหม่กว่า (debian jessie หรือเทียบเท่า +)
mchid

1
สิ่งนี้ใช้งานได้ดีกับ Debian
Anupam

1
คำตอบที่เหมาะสมสำหรับ debian 9+
John

1
หากพบupdate-rc.d: error: no runlevel symlinks to modify, aborting!ให้สร้าง simlink ที่หายไปด้านล่างใหม่ จากนั้นลองอีกครั้ง: /etc/rc0.d/K01 <service> /etc/rc1.d/K01 <service> /etc/rc2.d/S99 <service> /etc/rc3.d/S99 <service> / etc / rc4.d / S99 <service> /etc/rc5.d/S99 <service> /etc/rc6.d/K01 <service>
Amil Waduwawara

5

คิดว่าฉันแค่เพิ่มคำตอบโดย @gsullins และ @tododachi สำหรับผู้อ่านในอนาคตที่ใช้คำตอบที่ยอมรับ

หากคุณเคยใช้:

sudo update-rc.d apache2 remove

คุณสามารถใช้อาร์กิวเมนต์defaultsเพื่อเพิ่ม apache2 กลับสู่ autostart

sudo update-rc.d apache2 defaults

จากนั้นคุณสามารถเปิด / ปิดการใช้งาน

sudo update-rc.d apache2 disable
sudo update-rc.d apache2 enable
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.