On 08/04/15 at 00:58 +0200, Francois Lafont wrote: > Par exemple, au niveau des paquets qui installent un daemon (apache etc. > etc.), il faut bien que le postinst du paquet « active » le daemon, or > il me semble bien que les commandes ne sont pas les mêmes d'un système > init à l'autre. Comment ils font les développeurs de paquet pour que le > postinst marche quel que soit le système d'init mis en place sur l'OS ?
systemd a un "generator" qui cherche tous les scripts LSB (=~ SysV) qui n'ont pas de fichier service correspondant, en extrait diverses infos, et génère un fichier service pour systemd correspondant. ces fichiers .service générés sont visibles dans /run/systemd/generator.late/, ou avec systemctl cat mon_service Un exemple pour apache2 (on voit bien les appels au script dans /etc/init.d/ à la fin): -------------------------------------------------------->8 # Automatically generated by systemd-sysv-generator [Unit] SourcePath=/etc/init.d/apache2 Description=LSB: Apache2 web server Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target After=local-fs.target remote-fs.target network-online.target systemd-journald-dev-log.socket nss-lookup.target Wants=network-online.target Conflicts=shutdown.target [Service] Type=forking Restart=no TimeoutSec=5min IgnoreSIGPIPE=no KillMode=process GuessMainPID=no RemainAfterExit=yes SysVStartPriority=1 ExecStart=/etc/init.d/apache2 start ExecStop=/etc/init.d/apache2 stop ExecReload=/etc/init.d/apache2 reload -------------------------------------------------------->8 La description du service est préfixée par "LSB:", ce qui permet de lister ces scripts avec "systemctl list-units | grep LSB:". > De même, si un paquet a été développé et propose un joli script script > init pour System-V (ie un /etc/init.d/<le-deamon>), comment ils font > les développeurs du paquet pour leur paquet puisse aussi marcher avec > systemd ? Ils doivent se fendre aussi d'un fichier de conf pour que > systemd puisse aussi démarrer le daemon ? En gros les développeurs > doivent-ils fournir, pour chaque système d'init proposé par la distrib, > tout le nécessaire au niveau conf et/ou script de lancement etc. ? Soit ils utilisent le mécanisme ci-dessus, soit ils fournissent un fichier .service. L'inconvénient avec les .service auto-générés, c'est que du coup, on passe à côté de certaines fonctionnalités de systemd. Par exemple, une des forces de systemd, c'est d'être capable de vraiment tuer tous les processus d'un service lors de l'arrêt, grâce au suivi avec les cgroups. Mais systemd-sysv-generator ne peut pas savoir si c'est une bonne idée de nettoyer un service particulier de cette manière (il y a des contre-exemples, comme sshd). Du coup, il utilise "KillMode=process", qui ne tue que le processus principal. Lucas -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers debian-user-french-requ...@lists.debian.org En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org Archive: https://lists.debian.org/20150408064829.ga15...@xanadu.blop.info