如何在创建网络接口后立即运行脚本?

如何在创建网络接口后立即运行脚本?

我在 Ubuntu 16.04 Xenial 上使用 VirtualBox 5.1,并在上面运行了一些虚拟机“仅限主持人”网络在主机中显示为vboxnet0网络接口。我希望在创建接口后立即dnsmasq使用自定义配置来在此网络上提供 DNS 和 DHCP ,也就是在运行 VirtualBox 应用程序时。vboxnet0

可以通过某种方式触发此dnsmasq启动吗?通过 NetworkManager、udev 还是 systemd?

顺便说一句,我不想​​使用 VirtualBox 内置的 DNS/DHCP 服务器,原因超出了该问题的范围(本质上是自定义 DHCP 选项和重定向虚拟机的一些 DNS 查询)。

我也无法开始dnsmasq vboxnet0--bind-interfaces创建它是因为 NetworkManager 已经dnsmasq为自己的目的运行了一个实例,因此它必须与之一起运行。

答案1

大多数 *nix 系统都提供了在接口启动/关闭时运行特定命令的功能。但是,在创建接口时运行命令可能需要一些自定义脚本。

执行此操作的一种方法是编写自定义脚本(不确定这是否是最好的方法),该脚本定期扫描ifconfig命令的输出并检查它是否包含条目,如果找到接口vboxnet0条目,则运行自定义命令。vboxnet0

相关内容