Bagaimana cara menghentikan Apache2 dari mulai secara otomatis saat boot?

173

Bagaimana cara menghentikan Apache2 dari mulai secara otomatis saat boot? Saya tidak dapat menemukan opsi yang menonaktifkan start-up otomatis ketika saya menghidupkan mesin.

niccolo m.
sumber
1
Mungkin seseorang bisa lebih spesifik, tapi saya bisa mengarahkan Anda ke arah yang benar ... di / etc, ada direktori untuk rc * .d, yang berisi semua skrip start / stop, yang disebut, saya pikir, skrip init. Anda akan melihat tautan ke skrip yang ada di /etc/init.d, dan dimulai dengan "k" atau "s", untuk "kill" atau "start", dan nomor yang merupakan urutannya.
Marty Fried
Ya, saya tahu tentang direktori /etc/rcX.d, tetapi saya mencarinya untuk mencari tahu tentang beberapa alat yang lebih bagus, daripada hanya mengubah nama file secara manual (hidup ini terlalu singkat). update-rc.dtelah mengisi kekosongan ini.
Tomasz Gandor

Jawaban:

160

Di bawah folder /etc/init.d/Anda akan menemukan semua skrip init untuk berbagai layanan boot up, seperti apache2, jaringan, dll.

Bergantung pada runlevel mana komputer mulai, berbagai layanan dimulai. Jadi dari /etc/init.d/folder setiap "layanan" ditautkan ke satu / banyak / tidak ada run level folder yang dinamai dari rc0.dke rc6.d.

Untuk mempermudah, ada alat untuk menghapus / menambahkan tautan ini, karenanya menghapus atau menambahkan skrip ke dan dari mulai.

Untuk menonaktifkan apache2 cukup ketik:

sudo update-rc.d apache2 disable

Ini menonaktifkan apache2 saat startup tetapi tidak dihapus sehingga dapat diaktifkan kembali. Untuk menghapus skrip startup apache2 lakukan hal berikut:

Untuk menghapus apache2 cukup ketik:

sudo update-rc.d -f  apache2 remove

Melakukan hal ini akan menyebabkan semua folder runlevel yang ditautkan ke apache2 dihapus.

tomodachi
sumber
2
chkconfig juga dapat membantu - "chkconfig {service_name} off"
MCR
Tidak berfungsi lagi: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, dapatkah Anda menentukan versi yang Anda gunakan? Jawaban ini berfungsi untuk Apache 2 di Ubuntu 14.04.3
Dale Anderson
1
Bagaimana cara mengembalikan layanan?
Eugen Konkov
9
Peringatan! Ini akan MENGHAPUS layanan! Gunakan sudo update-rc.d apache2 disable.
Eduardo Cuomo
194

Anda cukup menonaktifkannya dengan:

sudo update-rc.d apache2 disable

dan kemudian jika Anda ingin mengaktifkannya lagi:

sudo update-rc.d apache2 enable

tergantung pada proyek yang sedang saya kerjakan, akan sangat mudah untuk memiliki layanan yang tersedia, jika saya ingin mengaktifkannya kembali.

gsullins
sumber
4
enablememberi saya kesalahan seperti runlevel arguments (none) do not match LSB Default-Start values, tetapi sudo update-rc.d apache2 defaultstampaknya telah berhasil mengaktifkannya kembali.
sini
2
@di sini sudo update-rc.d apache2 enablebermain seperti yang diharapkan untuk saya
Georgios Pligoropoulos
1
Di Ubuntu Trusty ia memberi tahu saya "menonaktifkan | mengaktifkan API tidak stabil dan mungkin berubah di masa depan."
Tanner
1
Tidak berfungsi - error: no runlevel symlinks to modify, aborting!. Namun, apache2 sedang berjalan dan mulai otomatis.
Daniel Kmak
Tidak berfungsi lagi:update-rc.d: error: no runlevel symlinks to modify, aborting!
TomDogg
55

Dengan systemdkita sekarang dapat menggunakan systemctlperintah untuk mencegah layanan mulai secara otomatis saat boot.

berikut ini sebuah contoh:

sudo systemctl disable apache2

Anda masih dapat memulai dan menghentikan layanan tetapi itu tidak akan mulai saat boot.

mchid
sumber
2
Linux Mint masih berbasis pada Ubuntu 14.04. Ubuntu mulai menggunakan systemd dari 15.04 pada.
twan163
1
@dragonmnl seperti kata twan163, systemd adalah untuk versi yang lebih baru (debian jessie atau setara +)
mchid
1
ini bekerja dengan baik pada Debian
Anupam
1
jawaban yang tepat untuk debian 9+
John
1
Jika bertemu update-rc.d: error: no runlevel symlinks to modify, aborting!, buat ulang semua tautan yang hilang di bawah; lalu coba lagi: /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

Pikir saya hanya akan menambah jawaban oleh @gsullins dan @tomodachi, untuk pembaca masa depan yang menggunakan jawaban yang diterima.

Jika Anda sudah pernah menggunakan:

sudo update-rc.d apache2 remove

Anda dapat menggunakan argumen defaultsuntuk menambahkan apache2 kembali ke autostart

sudo update-rc.d apache2 defaults

Maka Anda dapat mengaktifkan / menonaktifkan

sudo update-rc.d apache2 disable
sudo update-rc.d apache2 enable
Ben Winding
sumber