On Mon, Oct 1, 2012 at 4:58 AM, Matthew Booth <[email protected]> wrote:
> I have a requirement to restart squid whenever the VPN goes up or down[1].
> Reading around, it seems that the way to do this would be in response to the
> relevant D-Bus signal, which seems to be this one:
>
> signal sender=:1.6 -> dest=(null destination) serial=269
> path=/org/freedesktop/NetworkManager/ActiveConnection/2;
> interface=org.freedesktop.NetworkManager.VPN.Connection;
> member=VpnStateChanged
>
> I expected that systemd would allow me to do this, but as far as I can tell
> it doesn't (I'm using F17). I can obviously write my own daemon to do this,
> but it seems to me that a daemon just for this would be a waste. I think
> this sounds like a good fit for systemd. Is it anything anybody's looked at?

The problem with listening on a specific DBus message is that it
requires you to implement much more of DBus than systemd internally
can. I'm not sure it's a good idea to put something that complex into
systemd.

Your alternatives are to write a simple DBus frontend, or perhaps a
Network Manager plugin (if there is such a thing, I know connman has
the concept of plugins).

You can certainly socket activate a dummy service that doesn't
actually listen on DBus but instead executes `systemctl restart
squid.service` based on the BusName only. Systemd will likely however
not appreciate the unhandled socket, but it may be worth a try.

Auke
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to