因为我使用的是Bionic Beaver/Ubuntu 18.04,所以其中的网络设置/etc/network/interfaces
将被忽略,并且其中的设置/etc/NetworkManager/system-connections/'eth0'
用于 i) 静态 ip ii) 网关等。
我希望每次界面出现时都重新启动 sshd 服务。/etc/network/interfaces
因为我使用的是 Gnome ,所以它在正常的地方不起作用。每次出现特定界面时,我可以在哪里放置要运行的 NetworkManager 脚本?
解决方案是在
/etc/NetworkManager/dispatcher.d
. 例如,您可以journald
通过将以下脚本放置在以下位置来记录事件/etc/NetworkManager/dispatcher.d/log-iface-events.sh
:记得给它执行权限:
坏消息是脚本不再绑定到给定的接口或事件,例如up或down。因此,您必须检查脚本中的所有内容。如果您希望此脚本仅针对 运行
eth0
,则必须手动过滤,在脚本中添加类似以下内容:例如:
只有在处理接口
up
事件时才会运行eth0
。你可以有很多脚本。根据
man 8 networkmanager
,脚本将按字母顺序运行。这似乎包括子目录中的脚本。您必须阅读此手册页。network-manager-connection-action连接到 dbus 并监听连接状态的变化。使用用户权限运行。
无耻插件,我是作者