问题是有时启动后 NetworkManager 服务不运行。手动启动sudo service network-manager restart
或重启计算机都可以正常工作,但由于我想远程访问这些计算机,因此这并不总是一个选项。大多数情况下启动工作正常(NetworkManager 正在运行),因此很难重现,比如说每 20 次启动才会发生一次。
我在运行 Ubuntu 20.04.2 LTS 和内核 5.10.25-051025 的两台台式机上都看到了这个问题
事情发生后,我试着翻看日记,但唯一突出的是这一行
gnome-shell3166: JS ERROR: error initializing the NetworkManager Agent: NM.SecretAgentError: NetworkManager is not running
这些计算机也作为 NFS 服务器运行(如果这两者有关联的话),eth/network/interfaces 如下所示
auto lo
iface lo inet loopback
有什么想法可以让我确定 NetworkManager 有时不运行的原因以及如何确保它在启动后始终运行(以便我可以远程访问计算机)?
更新
运行status --full --no-pager network-manager
仅返回以下内容:
NetworkManager.service - Network Manager
Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:NetworkManager(8)
在 journalctl 中找到了这几行。它们有相关性吗?
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found ordering cycle on NetworkManager.service/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on basic.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on sockets.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on avahi-daemon.socket/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on sysinit.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on local-fs.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on mnt-NAS_data.mount/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on network.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Job NetworkManager.service/start deleted to break ordering cycle starting with network.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found ordering cycle on wpa_supplicant.service/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on basic.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on sockets.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on avahi-daemon.socket/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on sysinit.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on local-fs.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on mnt-NAS_data.mount/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on network.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Job wpa_supplicant.service/start deleted to break ordering cycle starting with network.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found ordering cycle on systemd-resolved.service/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on systemd-tmpfiles-setup.service/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on local-fs.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on mnt-NAS_data.mount/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Found dependency on network.target/start
dec 13 13:34:56 dataPC2 systemd[1]: network.target: Job systemd-resolved.service/start deleted to break ordering cycle starting with network.target/start
mnt-NAS_data.mount 是我们创建的,它可能会干扰网络管理员吗?
[Unit]
Description=NAS_2
After=network.target
[Mount]
What=/dev/disk/by-label/storage
Where=/mnt/NAS_data
Type=ext4
TimeoutSec=20
[Install]
WantedBy=multi-user.target
答案1
您在问题中添加的附加日志和配置文件表明您的 systemd 配置中存在依赖循环。网络管理器可能有时会启动,因为循环并不总是在同一个地方中断。
在网络启动之前,物理磁盘具有隐式的挂载依赖性。由于您已将其列为ext4
类型并列出了看似物理设备的内容,因此 systemd 认为这是一个必须在网络启动之前挂载的物理设备。
通过在此目标上添加 After=network 依赖项,您创建了一个循环。
systemd.mount 手册页建议,如果这是网络块设备,则需要将其添加_netdev
到挂载选项字符串中。通常,这会与其他挂载选项一起放在 /etc/fstab 中,但您也可以将其添加到 systemd 配置文件的Options=_netdev
挂载部分中。
如果这不是网络块设备或者不依赖于网络,则应该删除网络依赖。