I'm trying to add a systemd service file to an existing Debian package. I followed https://wiki.debian.org/Teams/pkg-systemd/Packaging, so I created debian/packagename.service. Because my debhelper is version 9.x, I also:

  • added dh-systemd to Build-Depends in debian/control
  • added --with systemd to the dh command in debian/rules.

Now when I rebuild the package with debuild -i -us -uc -b, it fails with this output:

Now running lintian...
W: packagename: init.d-script-not-marked-as-conffile etc/init.d/packagename
E: packagename: init.d-script-not-included-in-package etc/init.d/packagename

It seems like the build script expects an init.d script if there is a .service file. And indeed, the generated DEBIAN/postinst includes this section:

# Automatically added by dh_installinit
if [ -x "/etc/init.d/infinoted" ]; then
        update-rc.d infinoted defaults >/dev/null
        invoke-rc.d infinoted start || exit $?
# End automatically added section

Is this expected behavior? Should I always include SysV init scripts when I include a .service file? If not, what is the recommended way to prevent the generation of this section?

My system is Debian Jessie.


Overriding dh_installinit worked for me. I just added this to debian/rules:


It still installs the systemd unit and everything seems to work as expected.

But I still don't know if this is expected behavior or a bug. Note that I did not test this on Debian Stretch or Sid, only on Jessie.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.