Vous pouvez utiliser les préréglages systemd pour déterminer si un service systemd sera activé ou désactivé par défaut au moment de l'installation.
Les préréglages Debian activent par défaut tous les services au fur et à mesure de leur installation, vous n'avez donc qu'à expédier un préréglage aux postes de travail de développement (le comportement par défaut correspond à ce que vous voulez faire en production), en expédiant un fichier tel que /etc/systemd/system-preset/80-foo.preset
contenant une ligne qui dit
disable foo.service
Si vous gérez vos postes de travail de développeur à l'aide d'un système tel que Puppet, Chef, Ansible, etc., vous pouvez les utiliser pour expédier une telle configuration prédéfinie systemd, ce qui devrait vous permettre d'appliquer facilement la stratégie aux postes de travail de développeur uniquement et non à la production. Machines.
Votre package .deb doit utiliser la systemctl preset
commande pour activer le service, car cette commande respectera la configuration prédéfinie.
Comme le soulignent @JdeBP et @sourcejedi , les macros Debian dans deb-helpers (telles que dh_systemd_enable
) le font déjà, elles invoquent deb-systemd-helper
ce qui utilisera systemctl preset
par défaut (avec une petite mise en garde que si vous supprimez (mais ne purgez pas) le paquet, et le réinstaller plus tard, il n'activera alors pas le service, même si vous supprimez le fichier prédéfini.) Voir ce commentaire dans deb-systemd-helper
l' enable
opération de :
# We use 'systemctl preset' on the initial installation only.
# On upgrade, we manually add the missing symlinks only if the
# service already has some links installed. Using 'systemctl
# preset' allows administrators and downstreams to alter the
# enable policy using systemd-native tools.
Pour plus d'informations sur la fonction systemd des préréglages, consultez la page de manuel des préréglages systemd et de la commande systemctl preset
qui l'implémente.
*.preset
fichiers dans le cadre de ce package.