每次 Linux 连接到网络时都可以做“某事”吗?

每次 Linux 连接到网络时都可以做“某事”吗?

嘿,我试图让每次 NetworkManager(或其他什么,但这就是我现在正在谈论的)连接到网络(或更改网络)时运行一个脚本。

我真正想要的是一个 init 目录,每当我的 wifi 接口更改状态/essid 时,它都会触发其中的所有内容。或者“网络状态已更改”运行级别。或者其他什么。

答案1

您没有说明您使用的是哪个发行版,但在 Debian 衍生产品(Ubuntu 等)上,您可以在 中的配置节中指定在接口设置/拆卸过程中各个点调用的脚本/etc/network/interfaces。您可以指定在以下每个点调用的脚本:

  • 准备
  • 向上
  • 张贴
  • 向下
  • 预先下降
  • 后下

您还可以将脚本放入名为的目录中/etc/network/if-<stage>.d

有关详细信息,请参阅man 5 interfaces

答案2

NetworkManager 有一个名为 的脚本触发器目录/etc/NetworkManager/dispatcher.d/。请执行man NetworkManager以了解如何使用它。

答案3

除了上述建议之外,您还可以设置在网络出现故障时运行的 Upstart 脚本。

相关内容