2.6. 将 NetworkManager 与网络脚本搭配使用
这部分论述了如何在网络脚本中运行脚本以及如何使用自定义命令。
术语
网络脚本引用脚本 /etc/init.d/network 及其调用的其他已安装脚本。虽然 NetworkManager 提供默认网络服务,但脚本和 NetworkManager 可以并行运行并协同工作。红帽建议先测试它们。
运行网络脚本
仅使用 systemctl 命令运行网络脚本:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
systemctl 工具会清除任何现有环境变量并确保正确执行。
systemctl start|stop|restart|status network
systemctl start|stop|restart|status network
在 Red Hat Enterprise Linux 7 中,首先启动 NetworkManager,并使用 NetworkManager 进行
/etc/init.d/网络检查,以避免对 NetworkManager 的连接进行篡改。NetworkManager 旨在作为使用 sysconfig 配置文件的主要应用,/etc/init.d/network 则是辅助应用程序。
/etc/init.d/network 脚本运行:
- 手动 - 使用其中一个 systemctl 命令
start|stop|restart网络,或者 - 如果网络服务已启用,则引导和关闭 - 作为 systemctl enable network 命令的结果。
ifup 和 ifdown 脚本。
注意
由于 initscripts 的技术限制,systemctl reload network.service 命令无法正常工作。要为网络服务应用新配置,请使用 restart 命令:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
这会关闭并启动所有网络接口卡(NIC)以加载新配置。如需更多信息,请参阅 Red Hat Knowledgebase 解决方案 Reload 和 force-reload 选项用于网络服务。
systemctl restart network.service
~]# systemctl restart network.service
在网络脚本中使用自定义命令
只有在
/etc/init.d/network服务控制这些设备时,才会在 /sbin/ifup -local、ifdown-pre-local 脚本中执行自定义命令。默认情况下,ifup-local 文件不存在。如果需要,在 /sbin/ 目录下创建它。
ifup-local 脚本仅可由 initscripts 读取,NetworkManager 不可读取。要使用 NetworkManager 运行自定义脚本,请在分配程序.d/ 目录下创建它。请参阅 “运行 Dispatcher 脚本”一节。
重要
不建议修改 initscripts 软件包或相关 rpms 中包含的任何文件。如果用户修改这些文件,红帽不提供支持。
当网络连接上线和停机时,可以使用旧的
网络脚本 和 NetworkManager 运行自定义任务。如果启用了 NetworkManager ,ifup 和 ifdown 脚本将询问 NetworkManager 是否管理相关的接口,该接口可从 ifcfg 文件的 “DEVICE=” 行中找到。
由 NetworkManager 管理的设备:
- 调用 ifup
- 当您调用
ifup且设备由 NetworkManager 管理时,有两个选项:- 如果该设备尚未连接
,则是否会询问 NetworkManager 启动连接。 - 如果设备已经连接,则不执行任何操作。
- 调用 ifdown
- 当您调用
ifdown 且设备由NetworkManager 管理时 :ifdown要求 NetworkManager 终止连接。
网络管理器(NetworkManager )未管理的设备:
如果您调用
ifup 或 ifdown,该脚本将使用自 NetworkManager 存在之前的较旧的非网络管理器机制启动连接。
运行 Dispatcher 脚本
NetworkManager 提供了根据连接状态运行其他自定义脚本以启动或停止服务的方法。
默认情况下,/etc/NetworkManager/dispatcher.d/ 目录存在,NetworkManager 会以字母顺序运行脚本。每个脚本必须是 root 拥有的 可执行文件,并且必须仅对文件所有者具有 写入权限。有关运行 NetworkManager 分配程序脚本的更多信息,请参阅红帽知识库解决方案如何编写 NetworkManager 分配程序脚本以应用 ethtool 命令。