È 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.preset
contenente 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 preset
comando 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-helper
che useranno systemctl preset
di 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 enable
funzionamento :
# 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 preset
che lo implementa.
*.preset
file come parte di quel pacchetto.