GNU/Linux >> Tutoriels Linux >  >> Debian

Activation conditionnelle des fichiers Systemd via l'empaquetage Debian ?

J'ai créé un paquet deb qui installe un service.

Sur nos appareils intégrés, je souhaite que ce package active automatiquement le service. Sur nos postes de travail de développeur, je veux que les développeurs systemctl start foo manuellement (il s'agit d'un service lourd, et donc il consomme simplement des ressources s'il est exécuté tout le temps sur un environnement de bureau).

Comment puis-je inviter l'utilisateur à prendre sa décision pendant le apt-get étape? Est-ce la meilleure solution ?

Remarque, j'ai créé le package en utilisant dh_make et debhelper et activé avec :

%:
    dh [email protected] --with=systemd

override_dh_systemd_enable:
    dh_systemd_enable --name=foo foo.service

Réponse acceptée :

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 lorsqu'ils sont installés, vous n'avez donc qu'à envoyer un préréglage aux stations de travail de développement (le comportement par défaut correspond à ce que vous voulez qu'il se passe en production), en envoyant 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 fournir une telle configuration prédéfinie systemd, ce qui devrait vous permettre d'appliquer facilement la politique aux postes de travail de développeur uniquement et non à la production. machines.

Votre package .deb doit utiliser le 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à, ils invoquent deb-systemd-helper qui utilisera systemctl preset par défaut (avec une petite mise en garde que si vous supprimez (mais ne purgez pas) le paquet, et que vous le réinstallez 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 est enable opération :

    # 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 fonctionnalité 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.

Connexe :Debian – Le DNS n'est pas configuré correctement dans Debian Linux ?
Debian
  1. Écrire des fichiers de service Systemd de base ?

  2. Debian - Vous ne savez pas ce qui démarre ce fichier d'unité Systemd ?

  3. Debian - Systemd :le service ne dispose pas des paramètres Execstart=et Execstop=. Refusant?

  4. Comment installer Suricata sur Debian 11

  5. Comment arrêter le service systemd

Comment trouver des fichiers dans Debian 10

Comment manipuler des fichiers sur Debian 11

5 façons de libérer de l'espace disque sur Debian 10

Comment regarder ou surveiller les fichiers journaux dans Debian 10

Comment installer Icinga 2 sur Debian 8

Comment trouver des fichiers dans Debian