systemd-networkd-等待在线失败

systemd-networkd-等待在线失败

默认的 openvpn-server 配置文件依赖于 systemd-networkd-wait-online,超时并出现错误:

systemd-networkd-wait-online[279]: Event loop failed: Connection timed out

我的系统只有2个接口:

  • 瞧,被忽略了
  • eth0,已启动并正在运行并且配置完美

为什么会超时?这是系统错误吗?

法比奥

答案1

基本上与@alexei 相同的答案,但该选项--any允许您等待任何界面上线。您也可能会从该--timeout选项中受益。

请参阅文档了解更多信息。

sudo systemctl edit systemd-networkd-wait-online.service

并添加

[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any

他们之所以是一个额外的空白ExecStart=,是为了清除现有的服务条目,第二个设置为新值。

答案2

这可能是由于 systemd-networkd-wait-online 实用程序在某些极端情况下等待不会出现的接口(例如未插入电缆的以太网端口),例如有两个以太网接口。

就我而言,解决方法是编辑服务以将--ignore参数传递给我不想等待的接口的实用程序。

sudo systemctl edit systemd-networkd-wait-online.service

添加这些行:

[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --ignore=enp0s31f6

答案3

只需添加到此,您还可以指定一个特定的接口来systemd-networkd-wait-online等待使用

ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=eth0

这将导致服务忽略所有其他接口。

干杯!

答案4

systemd-networkd-wait-online正在查找 的接口的配置systemd-networkd。因此在这种情况下,可以设置一个而不是修改服务文件本身在线必填或者激活策略接口中的标志'系统网络配置文件。例如

/etc/systemd/network/enp0s31f6.network:

[Match]
Name=enp0s31f6

[Link]
RequiredForOnline=no

相关内容