Sorry, apparently this needs KillMode=process as well, since otherwise systemd will send the signal to all processes not just runsvdir-start. That somehow causes `systemctl stop` to hang there for long time. What every the exactly reason for this is, sending the signal just to runsvdir-start should be the right thing to do anyway.
Here is an updated patch.
diff -u runit-2.1.2/debian/changelog runit-2.1.2/debian/changelog --- runit-2.1.2/debian/changelog +++ runit-2.1.2/debian/changelog @@ -1,3 +1,11 @@ +runit (2.1.2-3.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * set KillSignal=SIGHUP and KillMode=process in systemd runit to assure + clean shutdown of runit tasks. + + -- Johannes 'fish' Ziemke <[email protected]> Fri, 08 Jan 2016 11:53:51 +0100 + runit (2.1.2-3) unstable; urgency=medium * workaround #766187 by copying from sysvinit-2.88dsf: diff -u runit-2.1.2/debian/systemd/runit.service runit-2.1.2/debian/systemd/runit.service --- runit-2.1.2/debian/systemd/runit.service +++ runit-2.1.2/debian/systemd/runit.service @@ -3,6 +3,8 @@ [Service] ExecStart=/usr/sbin/runsvdir-start +KillSignal=SIGHUP +KillMode=process Restart=always [Install]

