[systemd-devel] Boot ordering

Dimitri John Ledkov dimitri.j.ledkov at intel.com
Thu Mar 19 03:45:19 PDT 2015

On 19 March 2015 at 10:00, Christoph Pleger
<Christoph.Pleger at cs.tu-dortmund.de> wrote:
> Hello,
>>> I am experimenting a little with systemd and trying to define a new
>>> "intermediate" runlevel, a runlevel between basic.target and
>>> multi-user.target. This means that I want the services which are
>>> required
>>> by my new runlevel to be started after all services from basic.target
>>> have
>>> been started and to be finished before any service from
>>> multi-user.target
>>> is started.
>> There is no feasible way to do it right now.
> So, if the original unit file multi-user.target contains
> After=basic.target rescue.service rescue.target
> this "after" does not really mean anything and jobs wanted or required by
> multi-user.target can already be started when some jobs from basic.target
> have not been started???


You can move a service to be started earlier.

You cannot force move a service to be started later.

E.g. if foo.service is WantedBy=multi-user.target, yet bar.service
declares Wants=foo.service and bar.service is to be started e.g. for
basic.target, foo.service will be already running by the time
multi-user.target starts activation of its wants. (in simplified

This is by design, and hard / non-needed to be fixed. However their
might be alternative solutions to your problem. What is the the
problem you are trying to solve by "implementing a new 'intermediate'
runlevel" ?



Open Source Technology Center
Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ.

More information about the systemd-devel mailing list