Sistemas de inicialização e gerenciamento de serviços em diferentes distribuições

Sistemas de inicialização e gerenciamento de serviços em diferentes distribuições

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 startsó funciona com sistemas init system-v
  • service xyz startnã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 serviceferramenta 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+, RHEL6

  • SysV- /etc/init.d/xyz start
    RHEL5, Debian, Suse

  • OpenRC- /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
    BSDs

  • lançamento-OSXlaunchctl 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 xyzse ainda não estivesse em execução. Você não precisa estar ciente de mais nada.

AChefe de cozinha receitapode gerenciar umservicerecurso

service "xyz" do
  action :start
end

Fantocheservice

service { "xyz":
  ensure => "running",
}

serviceMódulo Ansible

- service: name=xyz state=started

informação relacionada