Hi all,

On my system, I can setup 2 VPN connections, which are mutually exclusive as they reach the same subnet for the most part. Let's call these A and B. A is faster than B, but B gives access to some extra subnets.

Now, I have a unit(some-dht.service) that needs a VPN connection but does not really care which one.
Another unit (super-secret.service) really needs VPN B.

What I would like is the following:
If no VPN is up, starting some-dht.service should start VPN A (as it's the fastest). But if B is already up, starting some-dht.service should not try to switch to VPN A, as that brings down B and super-secret.service with it. Of course if A or B stops, some-dht.service and super-secret.service should both stop as well.

Having 2 copies of some-dht (some-dht-at-A.service, some-dht-at-B.service) is a no-go, as that would bubble up into my top-level targets and scale badly when I need another choice-construct like this.
(at-work-with-vpn-A-and-soundcard-X.target)
(at-work-with-vpn-A-and-soundcard-Y.target)
(at-work-with-vpn-B-and-soundcard-X.target)
(at-work-with-vpn-B-and-soundcard-Y.target)

Not mentioning the requirement (on A or B) to systemd and resorting to some script that decides which units to bring up does not sound like a solution either.

Can I achieve this in some way?

regards,
Mathijs

_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to