Acabo de aprovisionar un nuevo VPS con CentOS 6, y viene con Apache.
Quiero deshabilitar Apache, porque en su lugar usaré Nginx.
Sé que puedo eliminar la secuencia de comandos en /etc/init.d/, pero no quiero hacer eso, porque es una cosa común que vino con el sistema. Prefiero tener una forma elegante de deshabilitar el servicio.
Pensé que podría poner algo en / etc / inittab, pero inittab contiene:
# 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:
Esto me lleva a creer que el sistema se está ejecutando desde el inicio. Bueno, miré, y la forma correcta de deshabilitar un servicio en el inicio es agregar un archivo de anulación. Entonces corro:
% 'manual' > /etc/init/httpd.override
Y reiniciar mi servidor. ¡Pero httpd todavía se está ejecutando! Confundido por esto, decido comprobar si el servicio inicial es el servicio init, ejecutando
% readlink /proc/1/exe
/sbin/init
Bueno, eso no era lo que esperaba ver. Tal vez no estoy corriendo advenedizo después de todo. ¿Hay una forma definitiva de verificar? Y si estoy ejecutando init, ¿cuál es la forma recomendada de deshabilitar un servicio de forma permanente? Soy nuevo en todo esto, y parece que hay muchas opiniones conflictivas por ahí.
Gracias por toda tu ayuda.
Respuestas:
La forma en que deshabilita un servicio en casi cualquier distribución derivada de RedHat es con el
chkconfig
comando:Y para detener un servicio en ejecución:
Estos comandos Haz lo correcto, independientemente de si el sistema está funcionando
systemd
,upstart
o de vainillaSysVInit
.Por lo que vale, a pesar de ejecutar la
upstart
mayoría de los servicios en CentOS 6, en realidad usaninit.d
scripts heredados , ubicados en/etc/rc.d/rc<RUNLEVEL>.d
. Para estos servicios,chkconfig
administra los enlaces simbólicos en/etc/rc.d/init.d
.fuente
Deshabilite el servicio que no desea iniciar durante el inicio del sistema usando chkconfig .
Enumerar los servicios disponibles con sus estados.
chkconfig --list
Deshabilitar el servicio htttpd en runlevel 2345
chkconfig --level 2345 httpd off
fuente