J'utilise xinetd
et cela fonctionne pour mes besoins. Cependant, j'ai récemment découvert que systemd avait quelque chose d'intégré appelé "activation de socket".
Ces deux semblent très similaires, mais systemd est "officiel" et semble être le meilleur choix.
Cependant, avant de l'utiliser, sont-ils vraiment les mêmes ? Y a-t-il des différences dont je devrais être conscient ?
Par exemple, je souhaite démarrer certains services dockerisés uniquement lorsqu'ils sont demandés pour la première fois - ma première pensée serait d'utiliser xinetd. Mais l'activation du socket est-elle meilleure / plus rapide / plus stable / peu importe ?
Réponse acceptée :
Je ne pense pas que l'activation du socket systemd soit nettement meilleure que xinetd
l'activation, lorsqu'elle est considérée isolément ; ce dernier est également stable et existe depuis plus longtemps. L'activation de socket est vraiment intéressante pour le découplage de services :elle permet de démarrer des services en parallèle, même s'ils ont besoin de communiquer, et elle permet de redémarrer des services indépendamment.
Si vous avez un service qui prend en charge xinetd
-style activation, il peut être utilisé avec l'activation de socket :un .socket
description avec Accept=true
se comportera de la même manière que xinetd
. Vous aurez également besoin d'un .service
fichier pour décrire le service. Les avantages complets de l'activation de socket systemd nécessitent une prise en charge dans le dæmon fournissant le service. Voir le billet de blog sur le sujet.
Mon conseil a tendance à être "si ce n'est pas cassé, ne le réparez pas", mais si vous voulez convertir un xinetd
-service basé sur systemd c'est certainement faisable.