[systemd-devel] ListenStream=0

Lennart Poettering lennart at poettering.net
Mon Apr 4 09:08:43 PDT 2011


On Mon, 04.04.11 16:44, Albert Strasheim (fullung at gmail.com) wrote:

> 
> Hello
> 
> On Mon, Apr 4, 2011 at 4:32 PM, Lennart Poettering
> <lennart at poettering.net> wrote:
> > On Mon, 04.04.11 07:13, Albert Strasheim (fullung at gmail.com) wrote:
> >> Hello all
> >> I just tried to start a socket unit with ListenStream=0 in the
> >> configuration, but this yields the following error:
> >> Failed to issue method call: Unit zero.socket failed to load: Invalid
> >> argument. See system logs and 'systemctl status' for details.
> >> I would expect that it would simply bind to any free port.
> >> Bug or feature?
> > We validate all input data, and to me it appeared as if port 0 would be
> > a not so useful feature.
> > But uh, I can be convinced to allow port == 0. Do you have a good
> > usecase for this? How do you determine the port number actually used? If
> > we allow port 0 we would have to add an interface so that clients can
> > query what was actually used, or not?
> 
> Our use-case looks something like this:
> 
> We are running a bunch of services across multiple machines.
> 
> Depending on the number of cores/memory/etc. in a machine, it will be
> configured to run a variable number of instances of a particular
> service.
> 
> Each instance will announce itself to the rest of the machines using
> multicast or some kind of central registry.
> 
> Part of this announcement contains the IP address and port where it
> can be contacted, so this port can be dynamically assigned.
> 
> In this kind of scenario it's nice to not have to worry about the
> specifics of the ports, or about keeping port ranges for different
> services separated.
> 
> I think you can leave the problem of which port was actually assigned
> to someone else for now. The service itself can discover its port
> number using getsockname.

Very true. This is a good usecase. I added this now to my todo list.

Lennart

-- 
Lennart Poettering - Red Hat, Inc.


More information about the systemd-devel mailing list