Я только что подготовил новый VPS под управлением CentOS 6, и он поставляется с Apache.
Я хочу отключить Apache, потому что вместо этого буду использовать Nginx.
Я знаю, что могу просто удалить скрипт в /etc/init.d/, но я не хочу этого делать, потому что это стандартная вещь, которая идет в комплекте с системой. Я бы предпочел изящный способ отключения службы.
Я думал, что смогу что-нибудь поместить в / etc / inittab, но inittab содержит:
# 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:
Это заставляет меня думать, что система работает выскочкой. Ну, я посмотрел, и правильный способ отключить службу в выскочке - это добавить файл переопределения. Итак, я бегу:
% 'manual' > /etc/init/httpd.override
И перезагрузите мой сервер. Но httpd все еще работает! Смущенный этим, я решил проверить, что выскочка - это служба инициализации, запустив
% readlink /proc/1/exe
/sbin/init
Ну, это не то, что я ожидал увидеть. Может, я все-таки не выскочка бегаю. Есть определенный способ проверить? И если я запускаю init, какой рекомендуемый способ отключить службу навсегда? Я новичок во всем этом, и, кажется, существует много противоречивых мнений.
Спасибо за вашу помощь.
Отключить службу практически в любом дистрибутиве, производном от RedHat, можно с помощью chkconfig
команда:
# chkconfig httpd off
И чтобы остановить работающую службу:
# service httpd stop
Эти команды будут делать все правильно, независимо от того, работает ли ваша система. systemd
, upstart
, или ваниль SysVInit
.
Для чего это стоит, несмотря на бег upstart
большинство сервисов в CentOS 6 фактически используют устаревшие init.d
скрипты, расположенные в /etc/rc.d/rc<RUNLEVEL>.d
. Для этих услуг chkconfig
управляет символическими ссылками в /etc/rc.d/init.d
.
Отключите службу, которую вы не хотите запускать во время загрузки системы, используя chkconfig.
Список доступных служб с указанием их состояний
chkconfig --list
Отключить службу htttpd на уровне запуска 2345
chkconfig --level 2345 httpd off