networking is simply not meant to be restarted or stopped on Ubuntu. The functionality simply isn't supported (and can't be supported as Jorge Castro notes). There are a lot of other services which depend on it. The
ifdown command didn't replace
service networking restart, since it has always been available. Bryan Gonzalez does a good job of explaining it:
Upstart is meant to be a complete replacement for Sysvinit. In the interest of backwards compatibility, the Upstart devs made some allowances so that people/packages still using sysvinit-style init scripts could continue to do so. The /etc/init.d/networking init script is written for sysvinit in such a way that calling it uses sysvinit methods and breaks dbus which is written for Upstart.
The solution here is to have the maintainer of the networking init script fix/rewrite it so that it is Upstart compatible. This may mean that the networking init script will lose compatibility with sysvinit, but they need to get over it. Sysvinit is deprecated/obsolete and too much effort is being wasted into maintaining it when the future is Upstart.
And later on:
The problem is that we have a method to perform this task that is tried and tested for many years.
This was a left-over deprecated functionality that though 'everyone knows no to use it' will cause damage if used. As you eloquently put it, this functionality no longer has any practical use, therefore it needed to be pruned.
There was a major bug which simply caused most of the GUI stack to go down, which has since been fixed.
- If you're on a GUI, then you simple have no business touching
network-manager handles the interfaces once they have been brought up. (And even then you don't need to restart it.)
- If you're on CLI, the
ifdown commands already provided the functionality.