[systemd-devel] Ordering for early initialization services

Umut Tezduyar umut at tezduyar.com
Mon Mar 25 01:55:38 PDT 2013


Hi,

My concern was being forward compatible with systemd and you have addressed
my concern.

Thank you.


On Sat, Mar 23, 2013 at 3:55 AM, Lennart Poettering
<lennart at poettering.net>wrote:

> On Fri, 08.03.13 14:12, Umut Tezduyar (umut at tezduyar.com) wrote:
>
> > Hi,
> >
> > What would be the advantage of placing an early boot up script in between
> > local-fs.target/sysinit.target OR in between
> > sysinit.target/basic.target?
>
> That's a very good question. This hopefully gives a bit of an explanation:
>
> http://www.freedesktop.org/software/systemd/man/bootup.html
>
> The difference is not that big actually. Basically, sysinit.target is
> supposed to be the barrier before which all the OS vendor system
> initialization stuff is finished. And then basic.target is the
> barrier before normal user services are started. In between the two we
> initialize the sockets currently, and only really those. i.e. units that
> belong to the user, but should run before the actual services are
> started.
>
> I plan to introduce "paths.target" and "timers.target" in a similar
> fashion soonishly. Also, as soon as we have kdbus support in systemd we
> will do bus name registration the same way. I.e. there will be a new
> unit type ".busname" for establishing bus names, and they by default are
> established between sysinit.target and busnames.target or so.
>
> Now, some of systemd's own services aren't entirely consistent between
> what it puts before sysinit.target and what before basic.target. But
> this is something we should clean up.
>
> But in general the rule is: you should place your early-boot stuff
> *before sysinit.target*. And your late-boot stuff *after
> basic.target*. And leave everything in between for .socket, .path,
> .timer, .busname units.
>
> > I cannot decide what should be the ordering for some early initialization
> > "oneshot" services I have in my embedded system. These services makes
> some
> > simple preparations that were previously in /rcS.d/. Dropped support for
> > /rcS.d/ in systemd was placing these services as After=sysinit.target and
> > WantedBy=sysinit.target (and I am not entirely sure but possibly
> > Before=basic.target). I could place them as systemd did before or I could
> > place them as After=local-fs.target and Before=sysinit.target.
> >
> > Since my embedded system doesn't have login prompt, I don't see the
> > difference between basic.target and sysinit.target other than socket
> > activation. Even then, a service that is socket activated has
> > DefaultDependency=yes (It will start after basic.target).
> >
> > To summarize, where are users encouraged to place their early boot up
> > initialization services (ex: setting up the bandwith on a NIC)?
>
> sysinit.target!
>
> Lennart
>
> --
> Lennart Poettering - Red Hat, Inc.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20130325/f28c3ddf/attachment.html>


More information about the systemd-devel mailing list