What restarts after which events - thoughts
-
There have been a few posts about OpenVPN and IPsec having too much stuff restarted when an interface goes up or down. Turning on/off a secondary WAN interface can cause a bunch of stuff on main interfaces to restart and cause service interruption unnecessarily. Another example I see is with packages - e.g. I have bandwidthd listening on LAN. Actually I don't want the system to restart bandwidthd every time a WAN interface changes state. Another little example would be blinkled, not an important thing but an example, it may only need restarting if one of the interfaces it is reporting changes state. Maybe squid is setup to proxy stuff from LAN and only send it out WAN, so it doesn't care what happens to OPT1.
There could be a method defined for packages to "register" in the config which interfaces and/or interface groups they care about (and to register that they care about none). Then a package could be restarted only if an interface/group it cared about goes up/down (or if it didn't register - have to initially assume existing packages care about "all").
Is such a thing reasonably useful?
Are there other events apart from interface transitions that packages might care to "register" for in some way?
If some people have good ideas/thoughts/suggestions I am happy to put in a feature request in redmine and those who care can help make it happen. Might take a while to define exactly what is wanted and a good desing, so not for 2.1 I expect :)
It would also be good to think generally about what other things are being done in response to interface up/down events and try to only do what is actually needed, rather than blanket restarting whole chunks of stuff.