[lxc-devel] [PATCH] Use container specific domain socket name

Serge Hallyn serge.hallyn at ubuntu.com
Tue Apr 16 13:52:56 UTC 2013


Quoting S.Çağlar Onur (caglar at 10ur.org):
> Hi Serge,
> 
> I was just following your lead as you said you don't wan't any long running
> monitor daemon :)

Yup, at this point I"m going for the least bad solution.  (since the best
solution, multicast af_unix, isn't possible :)

> Also I'm not sure how does that daemon is going to help
> starting multiple containers concurrently using only API. I'm guessing the
> first request will cause that daemon to start and it will never end
> unless specifically told it to shutdown?

So basically,

  c1  -                                --> m1
        \                             /
  c2  ----->  "\0$lxcpath" Daemon -------> m2
        /                             \
  c3  -/                               --> m3

m1 is the first lxc-monitor someone started.  It sees that "\0$lxcpath"
is not bound, so fires off a long-running daemon listening for events on
"\0$lxcpath", and doing listen/accept at "\0$lxcpath.M".  Then m1
connects to to that daemon on "\0$lxcpath.M" and listens for events.  m2
starts, connects to "\0$lxcpath.M", and listens for events.  m3. does
the same.  m1 exits, but the daemon continues.

c1 starts up, simply sends events as it does not to "\0$lxcpath".  If
that socket doesn't exist it ignores it.  If it's busy, it resends.

I won't be surprised if/when there turn out to be AF_UNIX-specific
reasons why we can't do this.

-serge




More information about the lxc-devel mailing list