On 04/26/2016 09:35 AM, Andrei Borzenkov wrote:
On Tue, Apr 26, 2016 at 9:27 AM, george Karakou
<mad-proffes...@hotmail.com> wrote:
Hi list, how are you all? I hope everyone is doing well.
I have a long starting unit that executes some(many actually) scripts and
with the parallel nature of systemd init process it doesn't fully start up
before some other units i have starting after it. Meaning "After="
directives in [Unit] section don't fully fill my needs here.
Is there a workaround?
Is Type=oneshot an option?

I understand that this demand somewhat violates the
parallel principle of the systemd init daemon but can it somehow be
serialized?
Thanks for any advice.
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

The service is of type dbus and i don't know if i want to break its functionality(since its a system-service and registers a name on the bus). But thanks.

On 04/26/2016 10:01 AM, Mantas Mikulėnas wrote:
On Tue, Apr 26, 2016 at 9:27 AM, george Karakou <mad-proffes...@hotmail.com <mailto:mad-proffes...@hotmail.com>> wrote:

    Hi list, how are you all? I hope everyone is doing well.
    I have a long starting unit that executes some(many actually)
    scripts and with the parallel nature of systemd init process it
    doesn't fully start up before some other units i have starting
    after it. Meaning "After=" directives in [Unit] section don't
    fully fill my needs here.


No, that's *exactly* the case for After= directives. To disable parallelization for some parts of the boot process, you use Before= and After= – that's it.

That said, if After=foo.service doesn't work properly, it usually means foo.service is lying to systemd about when it has "finished starting". If that's the case, you'd have exactly the same problems no matter what kind of serialization you try to enable.

If your megascript starts multiple daemons, then maybe it should be split into several independent .service units, one for each daemon? If that's not acceptable, try changing it to Type=notify, and make it use `systemd-notify READY=1` once it's done.

--
Mantas Mikulėnas <graw...@gmail.com <mailto:graw...@gmail.com>>
This service is vital for the networking part since it adds interfaces to bridge, adds static arp entries and some other stuff and the point is to have all this networking initialization in a central unit and then start everything else, after the interfaces have been "upped". And since it is a dbus service i don't know if i want to "break" it's functionality. Anyway i don't see anything severely broken, like firewalls complaining of non-existent interfaces after they have initialized, so i am aknowledging this as not so high priority and i therefor thank you both.
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to