2.6. 将 NetworkManager 与网络脚本搭配使用
这部分论述了如何在网络脚本中运行脚本以及如何使用自定义命令。
术语
网络脚本引用脚本
/etc/init.d/network
及其调用的其他已安装脚本。虽然 NetworkManager 提供默认网络服务,但脚本和 NetworkManager 可以并行运行并协同工作。红帽建议先测试它们。
运行网络脚本
仅使用 systemctl 命令运行网络脚本:
systemctl start|stop|restart|status
network
systemctl 工具会清除任何现有环境变量并确保正确执行。
在 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 命令:
~]# systemctl restart network.service
这会关闭并启动所有网络接口卡(NIC)以加载新配置。如需更多信息,请参阅 Red Hat Knowledgebase 解决方案 Reload 和 force-reload 选项用于网络服务。
在网络脚本中使用自定义命令
只有在
/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 命令。