Puede usar los valores predeterminados de systemd para determinar si un servicio systemd se habilitará o deshabilitará de manera predeterminada en el momento de la instalación.
Los ajustes preestablecidos de Debian habilitan de manera predeterminada todos los servicios a medida que se instalan, por lo que solo necesita enviar un ajuste preestablecido a las estaciones de trabajo de desarrollo (el comportamiento predeterminado coincide con lo que desea que suceda en producción), enviando un archivo como que /etc/systemd/system-preset/80-foo.preset
contiene una línea que dice
disable foo.service
Si administra sus estaciones de trabajo de desarrollador utilizando un sistema como Puppet, Chef, Ansible, etc., puede usarlas para enviar dicha configuración predeterminada del sistema, eso debería facilitarle la aplicación de la política solo a estaciones de trabajo de desarrollador y no a producción máquinas.
Su paquete .deb debe usar el systemctl preset
comando para habilitar el servicio, ya que ese comando respetará la configuración preestablecida.
Como @JdeBP y @sourcejedi señalan, las macros de Debian en deb-helpers (como dh_systemd_enable
) ya lo hacen, invocan deb-systemd-helper
lo que usará systemctl preset
por defecto (con una pequeña advertencia que si elimina (pero no purga) el paquete, y luego vuelva a instalarlo, entonces no habilitará el servicio, incluso si elimina el archivo preestablecido.) Vea este comentario en deb-systemd-helper
la enable
operación :
# 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 obtener más información sobre la función systemd de los presets, consulte la página de manual de los presets systemd y del comando systemctl preset
que lo implementa.
*.preset
archivos como parte de ese paquete.