我正在从Debian切换ifupdown
到systemd-networkd
,并且大多数情况下都可以正常工作。遗漏的一点是,每次更改网络后,我都想打电话给killall -ARLM tinc
我,以使我的VPN及时启动。
难道systemd
或systemd-networkd
提供这样的功能?我将如何使用它?
我正在从Debian切换ifupdown
到systemd-networkd
,并且大多数情况下都可以正常工作。遗漏的一点是,每次更改网络后,我都想打电话给killall -ARLM tinc
我,以使我的VPN及时启动。
难道systemd
或systemd-networkd
提供这样的功能?我将如何使用它?
Answers:
锡应作为系统单位更新,而不是发送直接信号。为了实现这一需求来配置自己的单元文件与相应的被链接Require=
,Before=
以及After=
在线路[Unit]
部分。另外,请确保WantedBy=
为网络服务设置了正确的地址。(即WantedBy=
{ network.target
,network-online.target
,network-pre.target
}代替multi-user.target
)
这样就可以执行systemctl restart systemd-networkd.service
以重新启动网络。将其与systemd-resolvd
,udev
/ dbus
(wpa_supplicant@nic.service
在wifi上加上时)结合使用,一个人的网络就可以正常工作。
请务必阅读有关切换到系统联网和单位相关性的文章。这也是systemd.service
通过systemd for administartors指南中的systemctl kill
命令将信号发送到设备的一种方式
systemctl kill
用来传递信号。但是我看不到如何在网络配置更改上触发该操作。
network.target
然后其他依赖项network-online.target
启动该单元。因此只需tinc.service
包含Requires=systemd-networkd.service
,WantedBy=network-online.target
然后在systemd-networkd启动时,将打开nic和tun接口,建立IP地址,然后发信号通知tinc根据需要启动或重新启动。
case "$2" in up|connectivity-change) if /usr/bin/nm-online -qx; then systemctl reload autossh.service fi;; esac