在Debian Jessie上重新启动网络


14

我想知道在Debian Jessie中重新启动网络服务的正确方法。我知道我可以使用:

service networking restart

要么

/etc/init.d/networking restart

反正给我的SSH连接问题,或

invoke-rc.d networking restart

以及使用systemctlifup / ifdown的其他两种方法。

但是,哪种方法是正确的呢?


尝试在unix.stackexchange.com提问,他们对不同的Linux风格和方言有更好的了解。
Massimo

1
哦,前三个命令基本上是等效的,service并且invoke-rc.d/etc/init.d/servicename使用给定的相同选项进行调用。
Massimo

另外,请参见此处:unix.stackexchange.com/questions/136481/…
Massimo

Answers:


11

我会使用该service命令,因为它在不同发行版之间更加一致。因此,在您提到的命令中,我要使用的变体是:

service networking restart

而且,我绝对会在screen会话中运行它,或者通过其他方式确保它不会失败,以防您与键入它的shell失去连接。(我尝试过通过登录来ssh重新连接网络,然后重新启动网络,以使ssh连接在网络断开时终止,然后将HUP发送给service它,以使它不会再次启动网络。)

在过去的系统中,其中service的脚本只是一个简单的包装,/etc/init.d而您的前两个命令将执行完全相同的操作。但是如今,有些系统service有时会做一些不同的事情,并且通常service更了解如何对您的特定发行版进行操作。并且invoke-rc.d也取决于分布。

尽管service在发行版中最相似,但服务名称仍可能不同。例如,有些分发中的服务被命名,network而其他分发中的服务被命名networking。在某些配置中,重新启动network-manager而不是可能更合适networking


感谢您的解释,非常清楚!下次,我将使用屏幕以及前面提到的service命令。
cloud81 '16

3
是否不建议在systemd系统上使用服务?
greenone83

@ greenone83手册页中没有关于不推荐使用的命令的指示。在我所看到的所有系统上,它都是一个方便的包装脚本,用于分发使用的任何初始化系统。并且由于对init进行了重新设计,因此对其进行了更新。这意味着您service现在可以像十年前一样使用现在的命令,即使底层的初始化脚本的行为完全不同,它也可以做正确的事情。
卡巴斯德(Kasperd)

@kasperd,这几乎解释了我的观点... unix.stackexchange.com/questions/240528 / ... 您可以做到...但随后您可能会打扰systemd
greenone83 '16

1
我换出了LAN电缆,导致网络连接中断。systemctl重新启动网络什么也没做,但是服务网络重新启动很成功。我正在运行Debian Jessie。
aSystemOverload
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.