Nonaktifkan Layanan Init Secara Permanen

10

Saya baru saja menyediakan VPS baru yang menjalankan CentOS 6, dan ia datang dengan Apache.

Saya ingin menonaktifkan Apache, karena saya akan menggunakan Nginx sebagai gantinya.

Saya tahu saya bisa menghapus skrip di /etc/init.d/, tetapi saya tidak ingin melakukan itu, karena itu adalah stok yang datang dengan sistem. Saya lebih suka memiliki cara anggun menonaktifkan layanan.

Saya pikir saya bisa memasukkan sesuatu ke / etc / inittab, tetapi inittab mengandung:

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
# 
id:3:initdefault:

Ini membuat saya percaya bahwa sistem berjalan dengan baik. Yah, saya melihat, dan cara yang benar untuk menonaktifkan layanan di pemula adalah dengan menambahkan file override. Jadi saya jalankan:

% 'manual' > /etc/init/httpd.override

Dan reboot server saya. Tapi httpd masih berjalan! Bingung dengan ini, saya memutuskan untuk memeriksa bahwa pemula adalah layanan init, dengan menjalankan

% readlink /proc/1/exe
/sbin/init

Yah, bukan itu yang saya harapkan untuk dilihat. Mungkin saya tidak akan menjadi pemula. Apakah ada cara yang pasti untuk memeriksa? Dan jika saya menjalankan init, apa cara yang disarankan untuk menonaktifkan layanan secara permanen? Saya baru dalam hal ini, dan tampaknya ada banyak pendapat yang saling bertentangan di luar sana.

Terima kasih atas bantuannya.

Max Bucknell
sumber
Mengapa tidak menghapus apache saja jika Anda tidak akan menggunakannya?
Frederik Nielsen
Karena saya mungkin ingin menggunakannya di masa depan, untuk proksi aplikasi Python dengan mod_wsgi, atau menjalankan PHP. Untuk saat ini, saya tidak ingin menggunakannya. Dan ini sepertinya masalah yang mungkin saya miliki lagi di masa depan, dengan layanan yang berbeda juga.
Max Bucknell

Jawaban:

16

Cara Anda menonaktifkan layanan di bawah hampir semua distribusi RedHat yang diturunkan adalah dengan chkconfigperintah:

# chkconfig httpd off

Dan untuk menghentikan layanan yang berjalan:

# service httpd stop

Perintah ini akan Lakukan Hal yang Benar terlepas dari apakah sistem Anda berjalan systemd, upstartatau vanili SysVInit.

Untuk apa nilainya, meskipun menjalankan upstartsebagian besar layanan di CentOS 6 sebenarnya menggunakan init.dskrip warisan , yang terletak di /etc/rc.d/rc<RUNLEVEL>.d. Untuk layanan ini, chkconfigkelola symlink di /etc/rc.d/init.d.

larsks
sumber
Saya menemukan ini dengan mencari sesuatu yang setara dengan update-rc.d dari jawaban trillan. Baru saja akan menjawab pertanyaan saya sendiri, tetapi Anda mengalahkan saya untuk itu. Terima kasih banyak, larsks.
Max Bucknell
4

Nonaktifkan layanan yang tidak ingin Anda mulai saat boot sistem menggunakan chkconfig .

Daftar layanan yang tersedia dengan negara mereka

chkconfig --list

Nonaktifkan layanan htttpd di runlevel 2345

chkconfig --level 2345 httpd off

sejuk
sumber