Jusqu'à récemment, il y avait un moyen simple et efficace de démarrer/arrêter/redémarrer des services:
service nginx start|stop|restart
Cela a parfaitement fonctionné pendant tant d'années, ... jusqu'à ce que certains pantalons intelligents ont décidé de les améliorer et maintenant, je suis confronté à des systèmes Debian/Ubuntu où le script service
ne fait rien (comme je suis censé utiliser les choses Comme systemctl start nginx.service
(beaucoup plus longtemps, pas de travail automatique, ...)
Ma question se réfère spécialement à Debian et Ubuntu, mais il serait également utile de couvrir également des distributeurs Centos/Redhat.
Alors, y a-t-il quelque chose qui peut me sauver de ces changements condamnés?
Au cas où il n'était pas clair, je cherche un moyen cohérent de traiter ceux qui travailleraient sur Debian 7.x, 8.x, les plus récents Ubuntu LTS et les non-LTS.
Ps. En dehors de la portée de cette question spécifique, mais des félicitations supplémentaires accordaient si la solution couvrirait également la partie active et désactivée pour les services.
Il y a eu un certain nombre de systèmes de démarrage et de contrôle de service variés sur des plates-formes UNIX sur l'histoire intacte.
Les service\chkconfig
Système basé sur vous avez trouvé simple et efficace est généralement appelé style sysvinit et était une étape majeure en fonction d'une sorte de normalisation . Vous trouverez ce style de démarrage sur Rhel/Centos (EL) à travers la version 6, Fedora à 14 ans et sur les distributions basées sur Debian/Ubuntu jusqu'à 2015. Ce n'est pas le seul système de démarrage, le style BSD (plus simple). Le système init a toujours de nombreux fans.
Sysvinit n'était pas une solution parfaite (qu'est-ce que c'est?) Et Systemd a été conçu pour surmonter de nombreux problèmes; C'est le système basé sur la commande systemctl
que vous rencontrez maintenant. Bien que cela ne soit pas universellement aimé (les gens détestent le changement, le blagot, etc.), il ne fait aucun doute que cela devient rapidement la norme DEFACTO dans la majorité des distributions.
Par conséquent, cherchez immédiatement la réponse à votre question initiale est simplement la suivante:
[.____] the standard façon de contrôler les services sur la plupart Distributions Linux est maintenant systemctl
!
[.____] Combien de temps cela va être vrai est que quelqu'un devinait; Probablement juste jusqu'à ce que quelque chose vient tout cela est mieux et devient largement adopté.
Je suis sûr qu'il y aura des emballages disponibles pour permettre, votre favori actuel, le service/chkconfig
Commandes de continuer à faire principalement des choses saines, mais avec cette courbe d'apprentissage particulière, il est probablement préférable de ne pas le combattre. Peut-être qu'ils attendent avec impatience, il y aura aussi des wrappers systemctl
pour les systèmes plus anciens, afin de les gérer à des fins plus nouvelles de la douleur;)
N'a-t-il pas de sens pour remplacer l'ancienne commande
service
avec une enveloppe qui appelleservicectl
[sic] à la place?Oui, mais une [...] wrapper pourrait le gérer, en faisant la transition vers SystemD plus lisse pour les utilisateurs.
... ce qui est, comme d'autres d'autres ont dit dans des commentaires ce qui a été fait longtemps depuis .
Les /usr/sbin/service
Commande sur Debian 8 fait partie du package Sysvinit-Utils. Il y a été là depuis 2009. Il s'agit d'un ajout de RedHat-crédiré à l'origine du package source Sysvinit d'origine et, comme on peut le voir à la lecture du script, il reconnaît à la fois SystemD en cours d'exécution et la présence d'emplois à la hausse, de l'exploitation des commandes de l'exploitation de l'agriculture à systemctl
et initctl
(via ses alias) respectivement. Cela a fait depuis 2013.
service nameaction
est assez largement disponible, même sur des systèmes d'exploitation non linux. Il travaillera même sur la plupart des BSD, car ils ont aussi leurs propres commandes service
. Il y a aussi une commande de shim service
dans le package NOSH qui se traduit par system-control actionname
. Mais …
service
.service
ont des problèmes bien connus de longue date que les administrateurs système racontent des histoires de guerre pendant des décennies.L'activation et la désactivation des services sont une situation similaire. Bien que le programme SUSE chkconfig
(Disponible emballé pour Debian et Ubuntu) soit très différent de la Fedora One (ils sont écrits dans des langages de programmation entièrement différents, même - une compilée, une interprétée), il y a un minimum commun chkconfig nameaction
Syntaxe, avec Action Être on
ou off
. Mais …
chkconfig
sur les BSDS, car les outils conventionnels pour cela sont soit sysrc
ou plus openbsd rcctl enable
et rcctl disable
. Il y a chkconfig
et rcctl
cales dans le forfait NOSH qui se traduisent par system-control enable name
et system-control disable name
.chkconfig
sait sur SystemD et agit comme une cale pour systemctl enable
et systemctl disable
. Le SUSE chkconfig
n'a aucune connaissance de SystemD.script/service
. Init-System-Aidateurs. Archives Source Debian.telinit
. (( NOSH Guide . 1.20. Les logiciels de JDEBP.service
. pages NOSH. Les logiciels de JDEBP.service
. §8. FreeBSD Pages manuelles.Il n'y a pas de moyen standard de démarrer et d'arrêter les services sur Linux.
y a-t-il quelque chose qui peut me sauver de ces changements condamnés?
Essayez l'outil de gestion/orchestration de la configuration: ansible , Chef , Saltstack , marionnette ou autre.
Vous pouvez commencer et activer un service avec une annulation:
ansible all -i inv -m service -a 'name=service-name state=started enabled=true'
Jetez un coup d'œil à la Classe Linuxservice dans le - service
module:
Il s'agit de la classe de manipulation de service Linux - Il prend actuellement en charge un mélange de binaires et de scripts initiaux pour la commande de services commencés au démarrage, ainsi que pour contrôler l'état actuel.