On Mon, 1 Aug 2016, Andrei Borzenkov wrote:
[...]
So here goes what I've done:
1. Create a service and put it in the network-online.target:
/etc/systemd/system/change-target.service:
[Unit]
Description=Change Target
Wants=network-online.target
After=network-online.target
[Service]
Type=oneshot
ExecStart=/tmp/script.sh
TimeoutSec=60s
[Install]
WantedBy=network-online.target
This unit have conflicting requirements - on one hand it is
After=network-online.target, OTOH WantedBy=network-online.target
implies Before=network-online.target.
I've seen this asserted on this list a few times, but as far as I can tell
it isn't actually correct. After/Before are meant to be completely
orthogonal to Wants/Requires/etc., according to the documentation.
If A.service has:
Wants=B.service
Before=B.service
then any time you ask A.service to be started, systemd will add a job to
start B.service... but it still ensures that A.service is started *before*
B.service.
Is my understanding on this incorrect? I have been making use of this
behaviour for quite some time, and as far as I can tell it has never
failed.
- Michael
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel