Scroll to navigation

DEB-SYSTEMD-HELPER(1p) init-system-helpers DEB-SYSTEMD-HELPER(1p)


deb-systemd-helper - subset of systemctl for machines not running systemd


deb-systemd-helper enable | disable | purge | mask | unmask | is-enabled | was-enabled | debian-installed | update-state | reenable unit file ...


deb-systemd-helper is a Debian-specific helper script which re-implements the enable, disable, is-enabled and reenable commands from systemctl.

The "enable" action will only be performed once (when first installing the package). On the first "enable", a state file is created which will be deleted upon "purge".

The "mask" action will keep state on whether the service was enabled/disabled before and will properly return to that state on "unmask".

The "was-enabled" action is not present in systemctl, but is required in Debian so that we can figure out whether a service was enabled before we installed an updated service file. See for details.

The "debian-installed" action is also not present in systemctl. It returns 0 if the state file of at least one of the given units is present.

The "update-state" action is also not present in systemctl. It updates deb-systemd-helper's state file, removing obsolete entries (e.g. service files that are no longer shipped by the package) and adding new entries (e.g. new service files shipped by the package) without enabling them.

deb-systemd-helper is intended to be used from maintscripts to enable systemd unit files. It is specifically NOT intended to be used interactively by users. Instead, users should run systemd and use systemctl, or not bother about the systemd enabled state in case they are not running systemd.


If you export _DEB_SYSTEMD_HELPER_DEBUG=1, deb-systemd-helper will print debug messages to stderr (thus visible in dpkg runs). Please include these when filing a bugreport.
Instead of working on the filesystem root /, perform all operations on a chroot system in the directory given by DPKG_ROOT.


Michael Stapelberg <>

2023-11-26 1.66