![/etc/init.d/networking restart 和 invoke-rc.d Networking restart 之间的区别](https://linux22.com/image/22939/%2Fetc%2Finit.d%2Fnetworking%20restart%20%E5%92%8C%20invoke-rc.d%20Networking%20restart%20%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB.png)
/etc/init.d/networking restart
和invoke-rc.d networking restart
(Debian)之间有什么真正的区别吗 ?
答案1
其内容invoke-rc.d
记录在其手册页中。它是直接运行 init 脚本的包装器,但它还应用了可能导致命令不运行的策略,该策略基于当前运行级别以及守护程序是否应在该运行级别中运行。
默认情况下,Debian 不区分运行级别 2-5,但作为本地管理员,您可以更改每个运行级别中运行的内容。invoke-rc.d
如果运行级别错误,将遵守这些本地策略并且不会启动守护进程。
答案2
没有真正的区别[1]。该invoke-rc.d
命令只是提供了一个用于运行 init.d 脚本的便捷界面,让您免去输入要运行的脚本的完整路径的繁重责任!两次调用将获得相同的最终结果。
[1] 请注意,该invoke-rc.d
命令在调用请求的服务脚本之前执行检查,以确保它应该运行 - 它可以防止在错误的运行级别等中调用脚本,因此从这个意义上说,这是有区别的 - 它可以保护您免遭射击脚有点。手册页在这方面应该具有指导意义。
答案3
执行网络重新启动的另一种简单方法是创建以下 bash 文件,在我的例子中称为 [net] 即:/etc/init.d/net
剧本:
#!/bin/sh -e
invoke-rc.d networking stop ; invoke-rc.d networking start ; ifup eth0
#Add whatever interfaces you have installed. ie: ifup eth0 wlan0 etc
创建后 chmod 711 '文件名' [net]