Ce fichier tout simple va considérer que les ressources mises à disposition par le service le sont instantanément (c'est le cas avec la socket-activation, par exemple), et que le daemon ne fork pas, mais on peut aussi rajouter une ligne Type=forking pour dire que les ressources sont dispos une fois que le daemon a forké, enfin il ya tout un tas de variantes, par exemple un Type=dbus pour considérer que le lancement est fini quand le daemon a pris un nom sur le bus (et là aussi, le daemon n'a pas à forker). Savoir quand est-ce qu'un service a fini son démarrage est important pour ordonner les dépendances.
Un support spécifique de systemd est requis si on veut utiliser la feature de socket-activation (mais ça casse pas trois pattes à un canard, ça consiste à aller lire dans des variables d'env quels sont les numéros des file descriptors déjà ouverts par systemd, rien de bloat), ou la feature de notification (en mettant Type=notify dans le fichier de conf) qui consiste a dire à systemd via une socket quand est-ce que le service est complètement initialisé.
Pour les développeurs de daemon et les admin-sys, au contraire systemd simplifie drôlement les choses.
Je t'invite à lire les billets de Lennart pour plus d'infos, même si tu compte pas passer à systemd c'est intéressant de voir ce qu'il est possible de faire.
[^] # Re: Nope
Posté par navaati . En réponse au journal Mon point de vue sur Archlinux. Évalué à 5.
Houlala, ya des gens qui imaginent des trucs aussi fous à propos de systemd oO ? Je comprends que certain y résistent…
Donc, non, pas du tout, pour lancer un daemon avec systemd, dans le cas le plus simple, y suffit d'un fichier du style :
Et c'est tout (ça remplace les initscripts).
Ce fichier tout simple va considérer que les ressources mises à disposition par le service le sont instantanément (c'est le cas avec la socket-activation, par exemple), et que le daemon ne fork pas, mais on peut aussi rajouter une ligne
Type=forkingpour dire que les ressources sont dispos une fois que le daemon a forké, enfin il ya tout un tas de variantes, par exemple unType=dbuspour considérer que le lancement est fini quand le daemon a pris un nom sur le bus (et là aussi, le daemon n'a pas à forker). Savoir quand est-ce qu'un service a fini son démarrage est important pour ordonner les dépendances.Un support spécifique de systemd est requis si on veut utiliser la feature de socket-activation (mais ça casse pas trois pattes à un canard, ça consiste à aller lire dans des variables d'env quels sont les numéros des file descriptors déjà ouverts par systemd, rien de bloat), ou la feature de notification (en mettant
Type=notifydans le fichier de conf) qui consiste a dire à systemd via une socket quand est-ce que le service est complètement initialisé.Pour les développeurs de daemon et les admin-sys, au contraire systemd simplifie drôlement les choses.
Je t'invite à lire les billets de Lennart pour plus d'infos, même si tu compte pas passer à systemd c'est intéressant de voir ce qu'il est possible de faire.