Hi guys,
Thank you for the prompt reply and your valuable input. Just to let you
know - I was able to do exactly what I intended. As it turns out my
mistake was indeed creating contradiction between the WantedBy and After
sections. Once I introduced a new "change.target" and adjusted my
services accordingly I was able to isolate successfully either A or B
targets during boot.
I also had to split the services in two: one main blocking of type
oneshot and one non-blocking of simple type just to switch the target.
As it seems I cannot call systemctl isolate from onehost type of service.
I just like to say that I followed this guide:
https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget where I
quote "/Alternatively, you can change your service that needs the
network to be up, to include After=network-online.target and
Wants=network-online.target./"
Once again thanks all for the help.
---
BR,
Swetli
On 08/01/2016 03:38 PM, Andrei Borzenkov wrote:
On Mon, Aug 1, 2016 at 2:43 PM, Michael Chapman <[email protected]> wrote:
On Mon, 1 Aug 2016, Andrei Borzenkov wrote:
On Mon, Aug 1, 2016 at 2:23 PM, Michael Chapman <[email protected]>
wrote:
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.
Unless DefaultDependencies= is set to no in either of releated units
or an explicit ordering dependency is already defined, target units
will implicitly complement all configured dependencies of type Wants=
or Requires= with dependencies of type After=.
man systemd.target
I just checked the code, and it looks like systemd explicitly *skips*
these default dependencies if they would create a loop. In
target_add_default_dependencies:
Yes, of course. It is also described in manual. But the question is
what user actually intended? It is more topic of good design.
_______________________________________________
systemd-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/systemd-devel
_______________________________________________
systemd-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/systemd-devel