[Pkg-dns-devel] Bug#867192: Bug#867192: Bug#867192: Bug#867192: Bug#867192: Bug#867192: Bug#867192: Bug#867192: let systemd know about the pid file
Robert Edmonds
edmonds at debian.org
Fri Jul 14 22:04:37 UTC 2017
Daniel Kahn Gillmor wrote:
> On Fri 2017-07-14 16:25:26 -0400, Robert Edmonds wrote:
> > Well, we would append the "-p /run/unbound.pid" bit to DAEMON_OPTS in
> > the sysvinit script unconditionally, something like:
> >
> > [...]
> > # Override this variable by editing or creating /etc/default/unbound.
> > DAEMON_OPTS=""
> >
> > if [ -f /etc/default/unbound ]; then
> > . /etc/default/unbound
> > fi
> >
> > DAEMON_OPTS="$DAEMON_OPTS -p $PIDFILE"
> > [...]
> >
> > No changes to the interface/contract. In fact this seems less broken to
> > me, because we hardcode the path to the pidfile in the sysvinit script.
> > Currently, if you set 'pidfile' yourself to some other value in the
> > Unbound config then start-stop-daemon looks in the wrong place for the
> > pidfile.
>
> I understand what you're saying from the point of view of debian, though
> it still makes it a little bit strange because then anyone who manually
> puts DAEMON_OPTS="-p /foo/bar" in /etc/default/unbound has it get
> overridden.
I guess we could override the variable like:
DAEMON_OPTS="-p ... $DAEMON_OPTS"
so that if DAEMON_OPTS="-p ..." appears in /etc/default/unbound, the
setting in /etc/default/unbound would take precedence. But if you're
trying to override the pidfile path, this has never actually worked
without editing the sysvinit script, so I don't care too much about this
use case.
> But i was thinking about the issue from upstream -- they have to
> coordinate their daemon changes with everyone using unbound, and the
> semantics of running "unbound -c foo.conf" will now change if we change
> the default, since the default path for the pidfile itself is currently
> compiled in (if you don't specify pidfile in the config file it'll still
> create a pidfile, i think).
>
> One way to make your approach more feasible (without changing upstream's
> expected contracts generically) would be to something like (untested):
>
> ./configure --with-pidfile=
>
> (that is, the empty pidfile). Then anyone on a debian system without a
> pidfile directive in the .conf just wouldn't get a pidfile (since
> daemon/unbound.c tests pidfile[0]). if we did that, then adding your
> proposed implementation to the init script would make sense -- because
> there'd be no public expectation that -p is something you'd manually
> supply in DAEMON_OPTS. I guess we're saying that "-p /foo/bar" should
> take precedence over 'pidfile: "/baz/qux"' in the config file, right?
Yeah, exactly.
--
Robert Edmonds
edmonds at debian.org
More information about the pkg-dns-devel
mailing list