您可以使用systemd预设来影响systemd服务在安装时默认是启用还是禁用。
Debian预设默认情况下会在安装所有服务时启用所有服务,因此您只需通过运送文件(例如/etc/systemd/system-preset/80-foo.preset
包含以下内容的行)将预设发送到开发工作站(默认行为与您要在生产中发生的行为相匹配)。说
disable foo.service
如果您使用Puppet,Chef,Ansible等系统管理开发人员工作站,则可以使用它们来发送这样的系统预设配置,这将使您轻松地将策略仅应用于开发人员工作站而不是生产环境机器。
您的.deb软件包应使用该systemctl preset
命令来启用服务,因为该命令将遵循预设配置。
正如@JdeBP和@sourcejedi指出的那样,deb-helpers中的Debian宏(例如dh_systemd_enable
)已经做到了,它们deb-systemd-helper
将systemctl preset
默认调用(使用一个小警告,即删除(但不清除)该软件包),并且稍后重新安装它,即使您删除了预设文件,它也不会启用该服务。)请参阅的操作中的注释deb-systemd-helper
enable
:
# 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.
有关预设的systemd功能的更多信息,请参见systemd预设及其systemctl preset
实现命令的手册页。
*.preset
文件安装为该软件包的一部分。