我有一些 python 代码需要使用 systemd-networkd 更改 linux 绑定的配置。我尝试编辑 .network 和 .netdev 配置文件并重新启动 networkd,但它不会更改绑定配置。
我接下来要做的是停止 networkd,删除绑定,然后再次启动 networkd。问题是,只要我删除绑定,networkd 就会启动。这也可以通过 systemctl 重现 - /lib/systemd/systemd-networkd 在删除接口后启动。
root@63cece1df328:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.0 76864 2376 ? Ss 05:54 0:00 /lib/systemd/systemd
root 21 0.0 0.0 70120 6452 ? S<s 05:54 0:00 /lib/systemd/systemd-journald
root 22 0.0 0.0 24824 368 ? Ss 05:54 0:00 /usr/bin/socat TCP-LISTEN:7272,reuseadd
message+ 29 0.0 0.0 49928 508 ? Ss 05:54 0:00 /usr/bin/dbus-daemon --system --address
systemd+ 30 0.0 0.0 71968 1296 ? Ss 05:54 0:00 /lib/systemd/systemd-networkd
root 33 0.3 0.0 18508 3424 pts/0 Ss 05:55 0:00 bash
root 43 0.0 0.0 34400 2848 pts/0 R+ 05:55 0:00 ps aux
root@63cece1df328:/# systemctl stop systemd-networkd
Warning: Stopping systemd-networkd.service, but it can still be activated by:
systemd-networkd.socket
root@63cece1df328:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 76864 4408 ? Ss 05:54 0:00 /lib/systemd/systemd
root 21 0.0 0.0 70120 6452 ? S<s 05:54 0:00 /lib/systemd/systemd-journald
root 22 0.0 0.0 24824 368 ? Ss 05:54 0:00 /usr/bin/socat TCP-LISTEN:7272,reuseadd
message+ 29 0.0 0.0 49928 508 ? Ss 05:54 0:00 /usr/bin/dbus-daemon --system --address
root 33 0.0 0.0 18508 3424 pts/0 Ss 05:55 0:00 bash
root 47 0.0 0.0 34400 2868 pts/0 R+ 05:56 0:00 ps aux
root@63cece1df328:/# ip link show mgmt
5: mgmt: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether fe:df:a1:cf:82:39 brd ff:ff:ff:ff:ff:ff
root@63cece1df328:/# ip link del mgmt
root@63cece1df328:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 76864 4912 ? Ss 05:54 0:00 /lib/systemd/systemd
root 21 0.0 0.0 70120 6452 ? S<s 05:54 0:00 /lib/systemd/systemd-journald
root 22 0.0 0.0 24824 368 ? Ss 05:54 0:00 /usr/bin/socat TCP-LISTEN:7272,reuseadd
message+ 29 0.0 0.0 49928 508 ? Ss 05:54 0:00 /usr/bin/dbus-daemon --system --address
root 33 0.0 0.0 18508 3424 pts/0 Ss 05:55 0:00 bash
systemd+ 50 1.0 0.0 71968 5964 ? Ss 05:57 0:00 /lib/systemd/systemd-networkd
root 51 0.0 0.0 34400 2924 pts/0 R+ 05:57 0:00 ps aux
root@63cece1df328:/# ip link show mgmt
13: mgmt: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1514 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether fe:df:a1:cf:82:39 brd ff:ff:ff:ff:ff:ff```
答案1
停止 systemd-networkd.service 时显示的警告解释了这个问题。“警告:正在停止 systemd-networkd.service,但仍可以通过以下方式激活:systemd-networkd.socket”
如果您想防止重新启动,您也需要停止套接字服务。
systemctl stop systemd-networkd.socket