Am 12.01.2018 um 09:55 schrieb Michael Chapman:
On Fri, 12 Jan 2018, Andrei Borzenkov wrote:
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

it's simple: Require is just plain wrong in many cases, oneshot or not

* dbmail needs a database
* that can either be postgresql or mysql
* so any unit which Require one of them would be wrong
* systemctl restart mysqld dbmail-imapd
  problem: database goes down while imap still accepts clients
* systemctl restart dbmail-imapd mysqld
  problem: straight after start you take down the database

at boot it would be start mysqld -> start dbmail-imapd
at shutdown it would be stop dbmail-imapd -> stop mysqld

just because "dbmail-imapd" has "After=postgresql mysqld"
only "systemctl restart" can never do the correct thing

you can't Require mysql because it's wrong when postgresql is used
you can't Require postgresql because it's wrong when mysql is used

frankly it makes me tired - i have not enough colored pencils to explain it so that people which decide to even not try to understand something gasp it
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to