[systemd-devel] Require a systemd.unit to finish completely before other services(units) are started
george Karakou
mad-proffessor at hotmail.com
Tue Apr 26 09:41:22 UTC 2016
On 04/26/2016 09:35 AM, Andrei Borzenkov wrote:
> On Tue, Apr 26, 2016 at 9:27 AM, george Karakou
> <mad-proffessor at 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 at 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-proffessor at hotmail.com <mailto:mad-proffessor at 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 <grawity at gmail.com <mailto:grawity at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20160426/f1d6ca0a/attachment-0001.html>
More information about the systemd-devel
mailing list