For me the proposed workaround doesn't work. On openvpn stop I get: sep 25 11:21:51 lieta networkd-dispatcher[140803]: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('AdministrativeState'): dbus.String('linger', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_314') sep 25 11:21:51 lieta networkd-dispatcher[140803]: DEBUG:Path '/etc/networkd-dispatcher/linger.d' does not exist; skipping sep 25 11:21:51 lieta networkd-dispatcher[140803]: DEBUG:Path '/usr/lib/networkd-dispatcher/linger.d' does not exist; skipping sep 25 11:21:51 lieta networkd-dispatcher[140803]: DEBUG:Ignoring notification for interface NetworkctlListState(idx=14, name='tap0', type='ether', operational='off', administrative='linger') entering state 'linger': no triggers
On openvpn start I get: sep 25 11:22:00 lieta networkd-dispatcher[140803]: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('CarrierState'): dbus.String('off', variant_level=1), dbus.String('OperationalState'): dbus.String('off', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_315') sep 25 11:22:00 lieta networkd-dispatcher[140803]: WARNING:Unknown index 15 seen, reloading interface list sep 25 11:22:00 lieta networkd-dispatcher[140803]: DEBUG:Performed interface scan; state: <Dispatcher({'script_dir': '/etc/networkd-dispatcher:/usr/lib/networkd-dispatcher'})> sep 25 11:22:00 lieta networkd-dispatcher[140803]: DEBUG:No change represented by operational state 'off' for interface 'tap0' sep 25 11:22:00 lieta networkd-dispatcher[140803]: DEBUG:Signal: typ=dbus.String('org.freedesktop.network1.Link'), data=dbus.Dictionary({dbus.String('AdministrativeState'): dbus.String('unmanaged', variant_level=1)}, signature=dbus.Signature('sv')), path=dbus.ObjectPath('/org/freedesktop/network1/link/_315') sep 25 11:22:00 lieta networkd-dispatcher[140803]: DEBUG:Path '/etc/networkd-dispatcher/unmanaged.d' does not exist; skipping sep 25 11:22:00 lieta networkd-dispatcher[140803]: DEBUG:Path '/usr/lib/networkd-dispatcher/unmanaged.d' does not exist; skipping sep 25 11:22:00 lieta networkd-dispatcher[140803]: DEBUG:Ignoring notification for interface NetworkctlListState(idx=15, name='tap0', type='ether', operational='off', administrative='unmanaged') entering state 'unmanaged': no triggers
So none of the networkd-dispatcher get executed.
For me the proposed workaround doesn't work. dispatcher[ 140803] : DEBUG:Signal: typ=dbus. String( 'org.freedeskto p.network1. Link'), data=dbus. Dictionary( {dbus.String( 'Administrative State') : dbus.String( 'linger' , variant_level=1)}, signature= dbus.Signature( 'sv')), path=dbus. ObjectPath( '/org/freedeskt op/network1/ link/_314' ) dispatcher[ 140803] : DEBUG:Path '/etc/networkd- dispatcher/ linger. d' does not exist; skipping dispatcher[ 140803] : DEBUG:Path '/usr/lib/ networkd- dispatcher/ linger. d' does not exist; skipping dispatcher[ 140803] : DEBUG:Ignoring notification for interface NetworkctlListS tate(idx= 14, name='tap0', type='ether', operational='off', administrative= 'linger' ) entering state 'linger': no triggers
On openvpn stop I get:
sep 25 11:21:51 lieta networkd-
sep 25 11:21:51 lieta networkd-
sep 25 11:21:51 lieta networkd-
sep 25 11:21:51 lieta networkd-
On openvpn start I get: dispatcher[ 140803] : DEBUG:Signal: typ=dbus. String( 'org.freedeskto p.network1. Link'), data=dbus. Dictionary( {dbus.String( 'CarrierState' ): dbus.String('off', variant_level=1), dbus.String( 'OperationalSta te'): dbus.String('off', variant_level=1)}, signature= dbus.Signature( 'sv')), path=dbus. ObjectPath( '/org/freedeskt op/network1/ link/_315' ) dispatcher[ 140803] : WARNING:Unknown index 15 seen, reloading interface list dispatcher[ 140803] : DEBUG:Performed interface scan; state: <Dispatcher( {'script_ dir': '/etc/networkd- dispatcher: /usr/lib/ networkd- dispatcher' })> dispatcher[ 140803] : DEBUG:No change represented by operational state 'off' for interface 'tap0' dispatcher[ 140803] : DEBUG:Signal: typ=dbus. String( 'org.freedeskto p.network1. Link'), data=dbus. Dictionary( {dbus.String( 'Administrative State') : dbus.String( 'unmanaged' , variant_level=1)}, signature= dbus.Signature( 'sv')), path=dbus. ObjectPath( '/org/freedeskt op/network1/ link/_315' ) dispatcher[ 140803] : DEBUG:Path '/etc/networkd- dispatcher/ unmanaged. d' does not exist; skipping dispatcher[ 140803] : DEBUG:Path '/usr/lib/ networkd- dispatcher/ unmanaged. d' does not exist; skipping dispatcher[ 140803] : DEBUG:Ignoring notification for interface NetworkctlListS tate(idx= 15, name='tap0', type='ether', operational='off', administrative= 'unmanaged' ) entering state 'unmanaged': no triggers
sep 25 11:22:00 lieta networkd-
sep 25 11:22:00 lieta networkd-
sep 25 11:22:00 lieta networkd-
sep 25 11:22:00 lieta networkd-
sep 25 11:22:00 lieta networkd-
sep 25 11:22:00 lieta networkd-
sep 25 11:22:00 lieta networkd-
sep 25 11:22:00 lieta networkd-
So none of the networkd-dispatcher get executed.