Existem atualmente 3 principais sistemas init usados pelo linux. Há alguns anos, havia apenas um, o SysVinit. Mas o SysVinit estava seriamente carente de recursos, como gráficos de dependência de serviços, por isso já está obsoleto na maioria das distros. Atualmente, a maioria das distros está mudando para systemd . Embora também haja upstart .
Mas aqui está a resposta para sua pergunta para cada um dos três sistemas init:
SysVinit
SysVinit atualmente usado pelo Debian e pelo RedHat. Embora a próxima versão do RedHat (7) esteja usando o systemd.
A maneira universal de ativar os serviços do SysVinit na inicialização é ligá-los simbolicamente em /etc/rc3.d
(ou /etc/rc2.d
). Todos os serviços podem ser encontrados em /etc/init.d
. No entanto, observe que as distribuições muitas vezes têm sua própria ferramenta para gerenciar esses arquivos, e essa ferramenta deve ser usada em seu lugar. (Fedora / RedHat tem service
e chkconfig
, o ubuntu tem update-rc.d
)
Listar serviços:
ls /etc/init.d/
Iniciar serviço:
/etc/init.d/{SERVICENAME} start
Parar serviço:
/etc/init.d/{SERVICENAME} stop
Ativar serviço:
cd /etc/rc3.d
ln -s ../init.d/{SERVICENAME} S95{SERVICENAME}
(o S95
é usado para especificar a ordem. S01 será iniciado antes de S02, etc)
Desativar serviço:
rm /etc/rc3.d/*{SERVICENAME}
Systemd
A distribuição mais notável usando o systemd é o Fedora. Embora seja usado por muitos outros. Além disso, com o Debian tendo escolhido o systemd over start, ele se tornará o sistema defact-up para a maioria das distribuições (o ubuntu já anunciou que lançará o upstart para o systemd).
Listar serviços:
systemctl list-unit-files
Iniciar serviço:
systemctl start {SERVICENAME}
Parar serviço:
systemctl stop {SERVICENAME}
Ativar serviço:
systemctl enable {SERVICENAME}
Desativar serviço:
systemctl disable {SERVICENAME}
Upstart
O Upstart foi desenvolvido pelo pessoal do Ubuntu. Mas depois que o debian decidiu usar o systemd , o Ubuntu anunciaram que abandonariam o .
Upstart também foi brevemente usado pelo RedHat, como está presente no RHEL-6, mas não é comumente usado.
Listar serviços:
initctl list
Iniciar serviço:
initctl start {SERVICENAME}
Parar serviço:
initctl stop {SERVICENAME}
Ativar serviço:
2 maneiras infelizmente:
-
Haverá um arquivo
/etc/default/{SERVICENAME}
que contém uma linhaENABLED=...
. Altere esta linha paraENABLED=1
. -
Haverá um arquivo
/etc/init/{SERVICENAME}.override
. Certifique-se de que contenhastart
(ou esteja totalmente ausente), nãomanual
.
Desativar serviço:
echo manual > /etc/init/{SERVICENAME}.override
Nota: Existe também o sistema init 'OpenRC' que é usado pelo Gentoo. Atualmente, o Gentoo é a única distro que o usa, e não está sendo considerado para uso, nem suportado por nenhuma outra distro. Então, eu não estou cobrindo o seu uso (embora se a opinião é que eu faço, eu posso adicionar).