On Fri, 12 Jan 2018, Andrei Borzenkov wrote:
12.01.2018 03:47, 林自均 пишет:
How about adding an "--order" option to systemctl? With this option,
systemctl will sort those units by ordering dependencies before submitting
them.

And why does it matter? If unit A can be started without unit B, why
does it matter in which order they are started? If unit A can *not* be
started without unit B, it must tell so using Requires or Requisite.

I actually do think there is merit having this _always_ done with a single transaction.

Just because you want ordering doesn't necessarily you care about requirements. You may have a set of Type=oneshot units, for instance, and you don't particularly care whether any of them fail, but they must be run in a particular order. Currently, you need to make sure that order is reflected in the systemctl arguments. It would be nice for the order to be derived correctly from their ordering dependencies.

With all jobs in a single transaction, you could use systemctl's --job-mode=fail option to determine whether the _entire_ transaction is safe to be applied. This would honor Conflicts= in units without requiring the user to list units in the correct order.

Thinking somewhat further ahead, I can imagine their might even be a use-case for having transactions represented in the DBus API. That way a client could build a transaction (start this unit, stop that unit, etc.), and apply it all at once.
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to