Назад | Перейти на главную страницу

Постоянно отключить службу инициализации

Я только что подготовил новый 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