Atualmente existem 3 principais sistemas init usados pelo linux. Alguns anos atrás, havia apenas um, SysVinit. Mas o SysVinit estava seriamente carente de recursos, como gráficos de dependência de serviço, por isso está obsoleto na maioria das distros até agora. Atualmente, a maioria das distros está mudando para systemd . Embora haja também arrivista .
Mas aqui está a resposta para sua pergunta para cada um dos 3 sistemas init:
SysVinit
SysVinit atualmente usado pelo Debian e RedHat. Embora a próxima versão do RedHat (7) esteja usando o systemd.
A maneira universal de ativar os serviços SysVinit na inicialização é vinculando-os a /etc/rc3.d
(ou /etc/rc2.d
). Todos os serviços podem ser encontrados em /etc/init.d
. Observe, no entanto, que as distribuições geralmente têm sua própria ferramenta para gerenciar esses arquivos, e essa ferramenta deve ser usada. (O Fedora / RedHat possui service
e chkconfig
, o ubuntu possui update-rc.d
)
Serviços de lista:
ls /etc/init.d/
Começar serviço:
/etc/init.d/{SERVICENAME} start
ou
service {SERVICENAME} start
Parar serviço:
/etc/init.d/{SERVICENAME} stop
ou
service {SERVICENAME} stop
Ativar serviço:
cd /etc/rc3.d
ln -s ../init.d/{SERVICENAME} S95{SERVICENAME}
( S95
é usado para especificar a ordem. S01 começará antes de S02, etc)
Desativar serviço:
rm /etc/rc3.d/*{SERVICENAME}
Systemd
A distribuição mais notável usando systemd é o Fedora. Embora seja usado por muitos outros. Além disso, com o Debian optando por usar o systemd em vez de inicializar, ele se tornará o sistema inicial para muitas distribuições (o ubuntu já anunciou que estará iniciando o sistemad).
Serviços de lista:
systemctl list-unit-files
Começar serviço:
systemctl start {SERVICENAME}
Parar serviço:
systemctl stop {SERVICENAME}
Ativar serviço:
systemctl enable {SERVICENAME}
Desativar serviço:
systemctl disable {SERVICENAME}
Subir na vida
O Upstart foi desenvolvido pelo pessoal do Ubuntu. Mas depois que o debian decidiu seguir com o systemd , o Ubuntu anunciou que iria lançar o inicio .
O Upstart também foi usado brevemente pelo RedHat, pois está presente no RHEL-6, mas não é comumente usado.
Serviços de lista:
initctl list
Começar 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 linha ENABLED=...
. Mude esta linha para ENABLED=1
.
Haverá um arquivo /etc/init/{SERVICENAME}.override
. Verifique se ele contém start
(ou está ausente), não manual
.
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 distribuição que o utiliza, e não está sendo considerada para uso, nem é suportada por nenhuma outra distribuição. Portanto, não estou cobrindo seu uso (embora, se a opinião é minha, posso adicioná-lo).