[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: systemd .service file conversion



On Fri, May 31, 2013 at 04:45:49PM +0300, Uoti Urpala wrote:
> >  This
> > is more true for the socket activation API that systemd could have
> > reasonably adopted from upstart, but chose not to do.
> 
> Didn't systemd actually have a socket activation API before upstart? I
> don't remember exactly, but IIRC upstart at least got it rather late and
> there was no standard long before systemd.
Looking at launchpad, it seems so:

    Revision ID: james.hunt@ubuntu.com-20110606170511-h7cm82b47vsv2y0o
    Merge of lp:~jamesodhunt/upstart/upstream-udev+socket-bridges.

...while systemd had socket activation in current form since the beggining.

But chronology is less important then the technical differences between
the two interfaces.

In systemd a socket activated process gets the variable $LISTEN_FDS
and sockets as file descriptors 3, 4, ..., $LISTEN_FDS-1 [1].
The interface is very generic.

In upstart the process gets one socket, with the number given in
the variable $UPSTART_FDS [2]. The naming (a) doesn't make sense since
there's only one socket, (b) is tied to upstart, and (c) there's only
one socket.

The limitation to one socket is quite constraining, e.g. we like
apache to listen on both 80 and 443, and the requirement for apache to
open the second port itselfs makes it impossible to start apache
unpriviledged.

Zbyszek

[1] http://www.freedesktop.org/software/systemd/man/sd_listen_fds.html#Description
[2] http://manpages.ubuntu.com/manpages/precise/man7/socket-event.7.html


Reply to: