Sistemas de inicio y gestión de servicios en diferentes distribuciones.

Sistemas de inicio y gestión de servicios en diferentes distribuciones.

¿Existe alguna descripción general de qué distribución de Linux viene con qué sistema de inicio (predeterminado) y qué herramienta utiliza para iniciar/detener servicios?

¿Existe alguna forma independiente de distribución para iniciar/detener/consultar un servicio?

  • /etc/init.d/xyz startsólo funciona con sistemas de inicio system-v
  • service xyz startno está disponible en todas las distribuciones (¿qué distribución (no) tiene esto?)
  • El cambio de caso dependiendo de los comandos disponibles parece ser la única forma confiable

Antecedentes: Necesitamos escribir un instalador para diferentes distribuciones de Linux que necesite reiniciar/consultar servicios. Llamar a la serviceherramienta sería genial para eso, pero no estoy seguro de qué distribuciones lo admiten.

Respuesta1

Si este servicio es lo que está instalando, entonces probablemente necesitará conocer la administración de cada servicio de distribución de todos modos, ya que debería escribir sus scripts/configuración de inicio correctamente para aquellas plataformas que desea admitir.

  • sistemad- systemctl start xyz.service
    Fedora 15+, RHEL7, Arch, Debian 8+, Ubuntu 15+, openSUSE 12.3+

  • Advenedizo-Ubuntu service xyz start
    , Fedora 9+, RHEL6

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

  • OpenRC- /etc/init.d/xyz start
    Gentoo, Alpine (soporta Net/FreeBSD)

  • SMF- svcadm enable svc:/prefix/xyz
    Basado en Solaris, Opensolaris (illumos, smartos, etc.)

  • rc - /etc/rc.d/xyz start
    BSD

  • lanzado-OSXlaunchctl start xyz

SysVes el estándar de Linux ( /etc/rc.d/xyz) desde el que la mayoría de los sistemas de inicio nuevos continúan admitiendo los scripts, por lo que ese es su punto base.

sistemadEs hacia donde se dirige Linux

No conozco una utilidad que pueda ejecutarse en muchas plataformas, pero la mayoría del software de administración de configuración puede realizar administración de servicios multiplataforma. Desafortunadamente, eso significa que también necesitaría instalar el software de administración de configuración (o al menos los módulos subyacentes y el tiempo de ejecución Ruby/python). Esto está bien si administra la instalación en sus propias máquinas, ya que puede hacer todo lo que instala desde la herramienta de configuración. No es tan bueno si intentas distribuir software a cualquier persona.

Los siguientes ejemplos de administración de configuración interactuarían con el administrador de servicios local predeterminado y se iniciarían xyzsi aún no se está ejecutando. No necesitas estar al tanto de nada más.

ACocinero recetapuede gestionar unservicerecurso

service "xyz" do
  action :start
end

Marionetaservice

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

servicemódulo ansible

- service: name=xyz state=started

información relacionada