当网络连接中断(并且无法重新连接)时,是否可以告诉网络管理员运行脚本?
例如:我的网卡驱动程序有一个错误,有时 NM 无法连接,脚本可以修复它,并且我希望每次网络管理器无法连接时运行它,我该怎么做?
答案1
它不是网络管理器的一部分 - 但网络管理器使用“ifupdown”来连接互联网,并且 ifupdown 允许您在连接(打开接口)或断开连接(关闭接口)时运行脚本
您需要做的就是将脚本放在 /etc/network/ 下的以下目录之一中:
if-pre-up.d/-连接前运行
if-up.d/-连接后运行
if-down.d/-断开连接前运行
if-post-down.d/-断开连接后运行
它并没有做我所寻找的确切事情 - 因为它没有检测到问题并且只在之后运行脚本 - 但由于我不在乎脚本运行更多次 - 我已经把它放进去了if-pre-up.d
,所以它在我每次连接互联网之前运行。
答案2
快速回答:是的。
长话短说,比“告诉”NM 做某事最简单的方法可能是查看在运行脚本之前,NM 是否处于启动/关闭状态。参见示例:https://wiki.archlinux.org/index.php/NetworkManager#Checking_if_networking_is_up_inside_a_cron_job_or_script
我认为让 NM 在状态改变之间做一些事情涉及改变 NM 代码本身。
您能否提供更多有关您要实现的目标的详细信息?