![Sistemas de inicialização e gerenciamento de serviços em diferentes distribuições](https://rvso.com/image/38707/Sistemas%20de%20inicializa%C3%A7%C3%A3o%20e%20gerenciamento%20de%20servi%C3%A7os%20em%20diferentes%20distribui%C3%A7%C3%B5es.png)
Existe alguma visão geral de qual distribuição Linux vem com qual sistema init (padrão) e usa qual ferramenta para iniciar/interromper serviços?
Existe alguma maneira independente de distribuição de iniciar/parar/consultar um serviço?
/etc/init.d/xyz start
só funciona com sistemas init system-vservice xyz start
não está disponível em todas as distribuições (qual distribuição (não) tem isso?)- a troca de casos dependendo dos comandos disponíveis parece ser a única maneira confiável
Antecedentes: Precisamos escrever um instalador para diferentes distribuições Linux que precisam reiniciar/consultar serviços. Chamar a service
ferramenta seria legal para isso, mas não tenho certeza de quais distribuições suportam isso.
Responder1
Se este serviço é o que você está instalando, então você provavelmente precisará conhecer o gerenciamento de cada serviço de distribuição de qualquer maneira, pois você deve escrever seus scripts/configuração de inicialização corretamente para as plataformas que deseja suportar.
sistema-
systemctl start xyz.service
Fedora 15+, RHEL7, Arch, Debian 8+, Ubuntu 15+, openSUSE 12.3+Subir na vida-
service xyz start
Ubuntu, Fedora 9+, RHEL6SysV-
/etc/init.d/xyz start
RHEL5, Debian, SuseOpenRC-
/etc/init.d/xyz start
Gentoo, Alpine (suporta Net/FreeBSD)SMF-
svcadm enable svc:/prefix/xyz
Baseado em Solaris, Opensolaris (illumos, smartos etc)rc -
/etc/rc.d/xyz start
BSDslançamento-OSX
launchctl start xyz
SysVé o padrão Linux ( /etc/rc.d/xyz
) a partir do qual a maioria dos novos sistemas init continua a suportar os scripts, então esse é o seu ponto base.
sistemaé para onde o Linux está indo
Não conheço um utilitário que possa ser executado em várias plataformas, mas a maioria dos softwares de gerenciamento de configuração pode fazer gerenciamento de serviços entre plataformas. Infelizmente, isso significa que você também precisaria do software de gerenciamento de configuração instalado (ou pelo menos os módulos subjacentes e o tempo de execução Ruby/python). Isso é bom se você estiver gerenciando a instalação em suas próprias máquinas, já que você pode fazer tudo o que instala a partir da ferramenta de configuração. Não é tão bom se você estiver tentando distribuir software para alguém.
Os exemplos de gerenciamento de configuração a seguir interagiriam com qualquer que seja o gerenciador de serviço padrão local e seriam iniciados xyz
se ainda não estivesse em execução. Você não precisa estar ciente de mais nada.
AChefe de cozinha receitapode gerenciar umservice
recurso
service "xyz" do
action :start
end
service { "xyz":
ensure => "running",
}
- service: name=xyz state=started