Bug#752075: daemontools-run: Add systemd support

Michael Biebl email at michaelbiebl.de
Tue Jul 22 14:03:02 BST 2014


Am 22.07.2014 14:34, schrieb Gerrit Pape:
> On Fri, Jul 18, 2014 at 12:03:41PM +0000, Gerrit Pape wrote:
>> I'm really not keen to add a dependency to daemontools-run, esp. not to
>> the runit package, just for (un)installing and starting/stopping a
>> service.
> 
> Hi, I've now prepared this changeset.  Do you have any comments on it?
> 
> 
> Author: Gerrit Pape <pape at smarden.org>
> Date:   Tue Jul 22 12:26:42 2014 +0000
> 
>       * debian/systemd/daemontools.path, debian/systemd/daemontools.service:
>         new; daemontools-run systemd unit files (thx Michael Biebl, Jonathan de
>         Boyne Pollard, Milan P. Stanic).
>       * debian/rules: install daemontools-run systemd unit files.
>       * debian/daemontools-run.postinst, debian/daemontools-run.postrm: enable
>         and start, disable and stop respectively daemontools units if systemd
>         is process 1.
> 
> diff --git a/debian/changelog b/debian/changelog
> index 8d124f4..d2d4efc 100644
> --- a/debian/changelog
> +++ b/debian/changelog
> @@ -1,3 +1,15 @@
> +daemontools (1:0.76-3.1) UNRELEASED; urgency=low
> +
> +  * debian/systemd/daemontools.path, debian/systemd/daemontools.service:
> +    new; daemontools-run systemd unit files (thx Michael Biebl, Jonathan de
> +    Boyne Pollard, Milan P. Stanic).
> +  * debian/rules: install daemontools-run systemd unit files.
> +  * debian/daemontools-run.postinst, debian/daemontools-run.postrm: enable
> +    and start, disable and stop respectively, daemontools units if systemd
> +    is process 1.
> +
> + -- Gerrit Pape <pape at smarden.org>  Tue, 22 Jul 2014 14:00:45 +0200
> +
>  daemontools (1:0.76-3) unstable; urgency=low
>  
>    * debian/daemontools-run.postinst: don't exec into the kill program, so
> diff --git a/debian/daemontools-run.postinst b/debian/daemontools-run.postinst
> index d51ac09..1d7aae1 100644
> --- a/debian/daemontools-run.postinst
> +++ b/debian/daemontools-run.postinst
> @@ -74,3 +74,7 @@ if ! grep '^SV:' /etc/inittab >/dev/null; then
>    mv -f /etc/inittab'{new}' /etc/inittab
>    kill -s HUP 1
>  fi
> +if test "$(readlink /sbin/init || :)" = /lib/systemd/systemd; then
> +  systemctl enable -f daemontools.path
> +  systemctl start daemontools.path
> +fi

The canonical check if systemd is PID 1 is

"test -d /run/systemd/system"



That said, the logic you added is incomplete/broken in several ways:

The user first installs daemontools-run, later on systemd => the
daemon-tools service will not be enabled


The user deinstalls systemd. Later on he deinstalls daemontools-run =>
the symlinks will not be cleaned up.


The systemctl enable call is run on every update. => If the admin has
disabled the service, it will be re-enabled


I didn't look further. There are probably more cases your maintainer
scripts don't handle correctly.


There is a reason, why we added the logic in a single place.




-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 884 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-systemd-maintainers/attachments/20140722/c18e2688/attachment-0002.sig>


More information about the Pkg-systemd-maintainers mailing list