Acabei de provisionar um novo VPS executando o CentOS 6 e ele vem com o Apache.
Eu quero desativar o Apache, porque usarei o Nginx.
Eu sei que posso simplesmente excluir o script em /etc/init.d/, mas não quero fazer isso, porque é uma coisa comum que veio com o sistema. Eu preferiria ter uma maneira graciosa de desativar o serviço.
Eu pensei que seria capaz de colocar algo no / etc / inittab, mas o inittab contém:
# 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:
Isso me leva a acreditar que o sistema está iniciando. Bem, eu olhei, e a maneira correta de desativar um serviço no inicio é adicionar um arquivo de substituição. Então eu corro:
% 'manual' > /etc/init/httpd.override
E reinicie meu servidor. Mas o httpd ainda está em execução! Confuso com isso, decido verificar se o upstart é o serviço init, executando
% readlink /proc/1/exe
/sbin/init
Bem, não era isso que eu esperava ver. Talvez eu não esteja correndo bem antes de tudo. Existe uma maneira definitiva de verificar? E se eu estiver executando o init, qual é a maneira recomendada de desativar um serviço permanentemente? Eu sou novo em tudo isso, e parece haver muitas opiniões conflitantes por aí.
Obrigado a todos por sua ajuda.
Respostas:
A maneira como você desabilita um serviço em praticamente qualquer distribuição derivada do RedHat é com o
chkconfig
comando:E para interromper um serviço em execução:
Estes comandos Faça a coisa certa, independentemente de seu sistema estiver em execução
systemd
,upstart
ou baunilhaSysVInit
.Vale a pena, apesar de executar a
upstart
maioria dos serviços no CentOS 6, na verdade, usarinit.d
scripts herdados , localizados em/etc/rc.d/rc<RUNLEVEL>.d
. Para esses serviços,chkconfig
gerencia os links simbólicos em/etc/rc.d/init.d
.fonte
Desative o serviço que você não deseja iniciar durante a inicialização do sistema usando chkconfig .
Listar os serviços disponíveis com seus estados
chkconfig --list
Desativar o serviço activationtpd no nível de execução 2345
chkconfig --level 2345 httpd off
fonte