Você pode usar as predefinições do systemd para afetar se um serviço do systemd será ativado ou desativado no momento da instalação.
As predefinições Debian usam como padrão habilitar todos os serviços à medida que são instaladas; portanto, você só precisa enviar uma predefinição para as estações de trabalho de desenvolvimento (o comportamento padrão corresponde ao que você deseja que ocorra na produção), enviando um arquivo como /etc/systemd/system-preset/80-foo.preset
uma linha que contenha diz
disable foo.service
Se você gerenciar suas estações de trabalho de desenvolvedor usando um sistema como Puppet, Chef, Ansible etc., poderá usá-las para enviar essa configuração predefinida do sistema, o que facilitará a aplicação da política somente às estações de trabalho de desenvolvedor e não à produção. máquinas
Seu pacote .deb deve usar o systemctl preset
comando para habilitar o serviço, pois esse comando respeitará a configuração predefinida.
Como o @JdeBP e o @sourcejedi apontam, as macros Debian nos deb-helpers (como dh_systemd_enable
) já fazem isso, invocam o deb-systemd-helper
que usará systemctl preset
por padrão (com uma pequena ressalva que se você remover (mas não limpar) o pacote, e mais tarde re-instalá-lo, então ele não vai permitir que o serviço, mesmo se você remover o arquivo de predefinição) Veja. este comentário em deb-systemd-helper
's enable
operação :
# 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.
Para obter mais informações sobre o recurso systemd de presets, consulte a página de manual do systemd presets e do comando systemctl preset
que o implementa.
*.preset
arquivos como parte desse pacote.