NetworkManager-wait-online.service 在启动时失败,并延迟了我的启动
答案1
一些代码在网络之外运行
在某些多用户环境中,启动过程的一部分可能来自网络。在这种情况下,systemd
默认等待网络上线后再执行某些步骤。
大多数桌面用户
与某些多用户环境不同,大多数 Ubuntu 桌面用户的硬盘、SSD 或 Live Boot USB 上都有操作系统和驱动程序。
存在一个问题,即有些用户在启动时等待网络启动的时间非常长。在这种情况下,建议将最大等待时间设置为 30 秒。更好的方法是在启动时禁用该服务。
对于许多用户来说,可以通过以下方法将并行启动时间缩短 10 到 15 秒:
sudo systemctl disable NetworkManager-wait-online.service
登录后,您可能会收到一个消息气泡,表明您现在已连接到网络(WiFi 或以太网访问互联网)。
答案2
看起来,这项服务只是等待,什么也不做,直到网络连接上,当这种情况发生时,它会改变其状态,以便可以启动依赖于网络的其他服务来开始执行其操作。
因此,看起来这项服务绝对是无害的,它不会在启动期间浪费任何时间,并且它实际上构成了一种优化,所以如果你禁用它,只会让事情变得更糟。
(需要网络的服务将在网络启动之前启动,此时许多其他服务也在启动,争用很激烈,这些服务将无法执行任何有用的操作,因此它们将继续重试连接到网络,直到网络最终启动。)
答案3
来自man
页:
姓名
systemd-networkd-wait-online.service, systemd-networkd-wait-online - 等待网络上线
描述
systemd-networkd-wait-online 是一个一次性的系统服务(参见 systemd.service(5)),用于等待网络配置。默认情况下,它将等待它所知道的、由 systemd-networkd.service(8) 管理的所有链接完全配置或失败,并且至少有一个链接处于联机状态。此处的联机表示链接的运行状态等于或高于“降级”。阈值可以通过 --operational-state= 选项配置。
答案4
对我来说,情况就是这样,因为我的 Cisco 交换机没有spanning-tree portfast
在工作站连接到交换机的接口上进行配置。无论出于什么原因,如果portfast
未配置,交换机需要很长时间才能启动接口。
您不会希望portfast
在连接了多台下游计算机的交换机接口上启用此功能 - 可能会导致只有一台计算机具有连接性。但是,如果您有多台下游计算机连接到交换机接口(例如通过交换机),那么您首先就不会看到此行为。