Постійно вимкнути службу Init


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:

Це змушує мене вважати, що система працює на старті. Ну, я подивився, і правильний спосіб відключити послугу на початку - це додати файл перезапису. Тому я бігаю:

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

І перезавантажте мій сервер. Але httpd все ще працює! Збентежений цим, я вирішив перевірити, чи не запущено службу init, запустивши

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

Ну, це не те, що я очікував побачити. Можливо я врешті-решт не біжу. Чи є певний спосіб перевірити? І якщо я запускаю init, що є рекомендованим способом назавжди відключити послугу? Я новачок у всьому цьому, і там, здається, існує багато суперечливих думок.

Дякую всім за допомогу.


Чому б просто не видалити апаш, якщо ви не збираєтесь ним користуватися?
Фредерік Нільсен

Тому що я, можливо, захочу його використовувати в майбутньому для доступу до програм 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.