È possibile utilizzare i preset di systemd per determinare se un servizio di systemd verrà abilitato o disabilitato per impostazione predefinita al momento dell'installazione.
Le preimpostazioni di Debian consentono di abilitare tutti i servizi mentre sono installati, quindi è necessario inviare un preset solo alle workstation di sviluppo (il comportamento predefinito corrisponde a ciò che si desidera che si verifichi in produzione), inviando un file come /etc/systemd/system-preset/80-foo.presetcontenente una riga che dice
disable foo.service
Se gestisci le tue stazioni di lavoro sviluppatore utilizzando un sistema come Puppet, Chef, Ansible, ecc., Puoi utilizzarle per spedire una tale configurazione preimpostata di sistema, che dovrebbe semplificare l'applicazione della politica solo alle workstation degli sviluppatori e non alla produzione macchinari.
Il pacchetto .deb dovrebbe usare il systemctl presetcomando per abilitare il servizio, poiché quel comando rispetterà la configurazione preimpostata.
Come sottolineato da @JdeBP e @sourcejedi , le macro Debian nei deb-helpers (come dh_systemd_enable) lo fanno già, invocano deb-systemd-helperche useranno systemctl presetdi default (con un piccolo avvertimento che se rimuovete (ma non eliminate) il pacchetto, e successivamente re-installarla, sarà poi non attivare il servizio, anche se si rimuove il file preimpostato) Cfr. questo commento a deb-systemd-helper's enablefunzionamento :
# 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.
Per ulteriori informazioni sulla funzione systemd dei preset, consultare la pagina man dei preset systemd e del comando systemctl presetche lo implementa.
*.presetfile come parte di quel pacchetto.