正在运行启动作业以等待网络配置。Ubuntu 服务器 17.10

vla*_*d27 88 networking 17.10

我刚刚在我的笔记本电脑上安装了 ubuntu 服务器,一切正常,除了在启动时如果笔记本电脑未连接到以太网或在我的 Wi-Fi 范围内,我收到此消息“启动作业正在运行,等待网络被配置”,停留约 2 分钟。我在网上查找解决方案,并尝试:

  • 禁用网络管理器
  • 在 /etc/systemd/system.conf 中编辑超时设置
  • 禁用 systemd.networkd-wait-online.service

这些解决方案都不适合我。任何可能的修复?

小智 87

不要屏蔽或禁用 systemd 服务。

编辑/etc/netplan/01-netcfg.yaml并添加optional: true到可能不总是可用的任何设备。

sudo netplan apply
Run Code Online (Sandbox Code Playgroud)

  • 20.04 ubuntu 服务器,我编辑了名为 /etc/netplan/00-installer-config.yaml 的文件 (13认同)
  • 这在哪些方面优于禁用 systemd 服务? (2认同)
  • 对于我在 Vmware 上使用 Ubuntu 18.04,对应的文件是 /etc/netplan/50-cloud-init.yaml;添加可选:true&reboot工作!相关主题:https://askubuntu.com/questions/1090631/start-job-is-running-for-wait-for-network-to-be-configured-ubuntu-server-18-04。netplan相关信息:https://www.linux.com/learn/intro-to-linux/2018/9/how-use-netplan-network-configuration-tool-linux(配置DHCP) (2认同)
  • 这有效,但我不明白为什么。“*optional: true*”设置表示设备“不需要启动”。但如果是呢?例如,当启动过程中的另一个步骤需要互联网连接时,这是否会产生其他问题?我只有 1 个应该始终存在的接口(eth0,连接到互联网)。为什么“变为可用”需要 2 分钟?它在等什么? (2认同)
  • 在virtualbox的ubuntu 20.04中它对我不起作用 (2认同)

小智 63

systemctl disable systemd-networkd-wait-online.service
Run Code Online (Sandbox Code Playgroud)

禁用等待在线服务以防止系统等待网络连接,并使用

systemctl mask systemd-networkd-wait-online.service
Run Code Online (Sandbox Code Playgroud)

防止服务在其他服务请求时启动(该服务符号链接到/dev/null)。

  • @SD @jaime-hablutzel 有关 `systemctl mask` 的解释,请参阅 https://askubuntu.com/a/816378/445084。长话短说:屏蔽服务会将其重定向到 `/dev/null`,防止在其他服务需要时重新启用它。 (6认同)

Des*_*son 14

这意味着systemd-networkd-wait-online.service悬而未决。它有一些已知的错误。检查什么服务需要network-online.target

systemctl show -p WantedBy network-online.target
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以禁用这些服务。否则,您可能必须按照 Mr.Ecco 的指示屏蔽该服务。


Ing*_*ngo 12

systemd-networkd-wait-online.service正如其他答案中所建议的那样,Masking可能有助于简单的设置,但不能解决问题。如果您屏蔽该服务,则所有其他依赖于它的服务也将失败。这意味着,所有需要等待网络在线的服务都将失败。

我遇到了这个问题,因为我对我的设备使用了动态故障转移设置绑定了有线(例如 enp9s0)和无线(例如 wlp12s0)接口,这些接口用作主接口bond0 的从属。如果您使用网桥(带有从接口的br0),您会遇到完全相同的情况。只有主接口bond0br0会联机,而从设备不会,因此systemd-networkd-wait-online.service会在从设备上失败。

解决这个问题的办法是修改服务,忽略那些是slave的接口,没有提示上线的接口。你会发现:

~$ sudo systemctl cat systemd-networkd-wait-online.service | grep --after-context=3 '\[Service\]'
[Service]
Type=oneshot
ExecStart=/lib/systemd/systemd-networkd-wait-online
RemainAfterExit=yes
Run Code Online (Sandbox Code Playgroud)

程序systemd-networkd-wait-online有一个参数可以忽略特定的接口。与/lib/systemd/systemd-networkd-wait-online --help. 所以我做了一个文件来修改服务并忽略从接口:

~$ sudo systemctl edit systemd-networkd-wait-online.service
Run Code Online (Sandbox Code Playgroud)

在空编辑器中插入这些语句,当然还有你的接口名称,保存它们并退出编辑器:

[Service]
ExecStart=
ExecStart=/lib/systemd/systemd-networkd-wait-online --ignore=enp9s0 --ignore=wlp12s0 --quiet
Run Code Online (Sandbox Code Playgroud)

ExecStart=很重要,因为它禁用了“旧”命令。您可以检查多个界面(查看帮助)。

  • 这与在 netplan 配置中使用“可选:true”的最终结果不一样吗? (4认同)