[systemd-devel] help with systemd socket file for programs in the quagga suite

Lennart Poettering lennart at poettering.net
Wed Oct 22 04:27:27 PDT 2014


On Sat, 13.09.14 23:04, Andrei Borzenkov (arvidjaar at gmail.com) wrote:

> В Fri, 12 Sep 2014 19:10:01 +0100
> "lux-integ" <lux-integ at btconnect.com> пишет:
> 
> > On Friday 12 September 2014 18:28:30 Dave Reisner wrote:
> > > I'll stop you here. You can't simply "synthesize" a socket unit for any
> > > arbitrary program that uses a socket (regardless of the address family).
> > > Socket units are specific to socket-activated services (which requires
> > > code changes in the daemon itself) and per-connection spawning.
> > > 
> > > Based on a perusal of the manpage and source, Zebra appears to be
> > > neither of these
> > 
> > 
> > thanks a lot
> > 
> > I too checked the man page  I found on the internet  and found them to be 
> > different to doing 
> > /usr/sbin/zebra --help
> > 
> > I  tend to err on the side of trusting the installed more   and so 
> >  why does   this line :-
> > ( -z, --socket       Set path of zebra socket )
> > results from 
> > /usr/sbin/zebra  --help
> > ( and indeed all the programs in the quagga suite ? )
> > 
> > Is it in error ?
> > 
> 
> May be not, but socket activated services in systemd receive socket on
> stdin/stdout, not as argument.

That's not entirely true. In inetd-style activation the sockets are
passed as stdin/stdout. On systemd-style activation they are passed as
sockets 3,4,5,..., i.e. the ones immediately following
stdin/stderr/stdout.

But anyway, the gist of it is true: socket activation requires proper
support for it in the daemons. And just being able to set the socket
path is not enough. Without patching zebra to support proper
systemd-style socket activation (or even inetd-style as we support
either) this is not available.

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list