为什么“服务网络重启”在 14.04 中不起作用?

为什么“服务网络重启”在 14.04 中不起作用?

我知道有人问过在 14.04 中重启网络时遇到的问题。但是我想知道是否有人能更直接地回答为什么我们不能使用该service命令重启网络服务。

或者为什么service networking restart现在已经被手动ifdown/ifup命令取代了?

前任。 ifdown eth0 && ifup eth0

答案1

networking根本就不是用来在 Ubuntu 上重启或停止的。该功能根本就不受支持(并且无法支持正如豪尔赫·卡斯特罗所说)。还有很多其他服务依赖于它。/ifup命令ifdown没有代替 service networking restart,因为它始终可用。布莱恩·冈萨雷斯很好地解释了这一点:

Upstart 旨在完全替代 Sysvinit。为了向后兼容,Upstart 开发人员做出了一些让步,以便仍在使用 sysvinit 样式 init 脚本的人员/程序包可以继续使用。/etc/init.d/networking init 脚本是为 sysvinit 编写的,调用它会使用 sysvinit 方法并破坏为 Upstart 编写的 dbus。

解决方案是让网络初始化脚本的维护者修复/重写它,使其与 Upstart 兼容。这可能意味着网络初始化脚本将失去与 sysvinit 的兼容性,但他们需要克服它。Sysvinit 已被弃用/过时,当未来是 Upstart 时,维护它就会浪费太多精力。

稍后的

问题在于我们有一种经过多年尝试和测试的方法来执行这项任务。

然后

这是一个遗留的弃用功能,虽然“每个人都知道不要使用它”,但如果使用就会造成损害。正如您所言,此功能不再有任何实际用途,因此需要删除。

有一个重大错误,导致大部分 GUI 堆栈崩溃,这已修复

总结一下:

  • 如果您使用的是 GUI,那么您根本无需接触networking,因为network-manager一旦启动接口,它就会处理这些接口。(即使这样,您也不需要重新启动它。)
  • 如果您使用 CLI,ifup/ifdown命令已经提供了该功能。

相关内容