Init-systems et gestion de service sur différentes dissortingbutions

Existe-t-il un aperçu de la dissortingbution Linux avec quel système d'initialisation (par défaut) et utilise quel outil pour démarrer / arrêter les services?

Existe-t-il un moyen indépendant de dissortingbution pour démarrer / arrêter / interroger un service?

  • /etc/init.d/xyz start ne fonctionne qu'avec les systèmes d'initialisation system-v
  • service xyz start n'est pas disponible sur chaque dissortingbution (quelle dissortingbution ne possède pas?)
  • le changement de cas en fonction des commands disponibles semble être le seul moyen fiable

Context: Nous devons écrire un programme d'installation pour la dissortingbution Linux différente qui doit redémarrer / interroger les services. Appeler l'outil de service serait cool pour cela, mais je ne suis pas sûr de savoir quelles dissortingbutions supportent cela.

Si ce service est ce que vous installez, vous aurez probablement besoin de connaître chaque gestion du service de dissortingbution, car vous devriez écrire correctement vos scripts / config init pour les plates-forms que vous voulez prendre en charge.

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

  • Upstart – service xyz start
    Ubuntu, Fedora 9+, RHEL6

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

  • OpenRC – /etc/init.d/xyz start
    Gentoo (prend en charge Net / FreeBSD)

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

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

  • launchd – launchctl start xyz
    OSX

SysV est la norme Linux ( /etc/rc.d/xyz ) que la plupart des nouveaux systèmes d'init continuent à supporter les scripts, donc c'est votre sharepoint base.

systemd est où Linux se dirige

Je ne suis pas au courant d'un utilitaire qui peut fonctionner sur beaucoup de plates-forms, mais la plupart des logiciels de gestion de configuration peuvent faire la gestion de services multi-plateforme. Malheureusement, cela signifie que vous aurez également besoin du logiciel de gestion de configuration (ou au less des modules sous-jacents et du runtime ruby ​​/ python). C'est bien si vous gérez l'installation sur vos propres machines, comme vous pourriez faire tout ce que vous installez à partir de l'outil de configuration. Pas si bien si vous essayez de dissortingbuer des logiciels à n'importe qui.

Les exemples de gestion de configuration suivants interagiraient avec le gestionnaire de services par défaut local et xyz s'il xyz pas déjà. Vous n'avez pas besoin d'être conscient de quelque chose de plus.

Une recette Chef peut gérer une ressource de service

 service "xyz" do action :start end 

service marionnettes

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

Module de service Ansible

 - service: name=xyz state=started