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


10

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

Это наводит меня на мысль, что система работает на старте. Ну, я посмотрел, и правильный способ отключить службу в upstart - добавить файл переопределения. Итак, я бегу:

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

И перезагрузите мой сервер. Но httpd все еще работает! Смущенный этим, я решаю проверить, что выскочка является службой инициализации, запустив

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

Ну, это не то, что я ожидал увидеть. Может быть, я не выскочил в конце концов. Есть ли определенный способ проверить? И если я запускаю init, каков рекомендуемый способ навсегда отключить службу? Я новичок во всем этом, и, похоже, существует много противоречивых мнений.

Спасибо за вашу помощь.


Почему бы просто не удалить Apache, если вы не собираетесь его использовать?
Фредерик Нильсен

Потому что я мог бы захотеть использовать его в будущем для прокси-приложений Python с mod_wsgi или для запуска PHP. Пока я не хочу этим пользоваться. И это похоже на проблему, которая может возникнуть у меня в будущем, с другими службами.
Макс Бакнелл

Ответы:


16

Вы отключаете службу практически для любого дистрибутива, производного от 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.


Я выяснил это, ища что-то эквивалентное update-rc.d из ответа Триллана. Собирался ответить на мой собственный вопрос, но вы меня опередили. Большое спасибо, жаворонки.
Макс Бакнелл

4

Отключите службу, которую вы не хотите запускать во время загрузки системы, используя chkconfig .

Перечислите доступные сервисы с указанием их состояний

chkconfig --list

Отключить службу htttpd на уровне запуска 2345

chkconfig --level 2345 httpd off

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.