AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1530631
Accepted
xealits
xealits
Asked: 2024-10-20 22:49:13 +0800 CST2024-10-20 22:49:13 +0800 CST 2024-10-20 22:49:13 +0800 CST

NetworkManager.service 无法在快速启动中启动,journalctl 在启动过程中显示许多 systemd 排序周期

  • 772

我刚刚在 Intel Optane p4801x 驱动器上安装了 Ubuntu 24.04。我试图看看它从这个磁盘启动的速度有多快。确实,它启动得非常快。但该NetworkManager设备经常无法启动。它已启用,但已死机,并且没有任何内容journalctl -b 0 -u NetworkManager.service。即该设备在启动期间从未运行过。当我在启动后自己启动它时,它会正常运行:

systemctl start NetworkManager

日志显示networkd-dispatcher已禁用以中断订购周期:

$ journalctl -b 0 | grep network
Oct 20 14:21:15 evergreens kernel: drop_monitor: Initializing network drop monitor service
Oct 20 14:21:15 evergreens systemd[1]: multi-user.target: Found ordering cycle on networkd-dispatcher.service/start
Oct 20 14:21:15 evergreens systemd[1]: multi-user.target: Job networkd-dispatcher.service/start deleted to break ordering cycle starting with multi-user.target/start
Oct 20 14:21:15 evergreens systemd[1]: Reached target network.target - Network.
Oct 20 14:21:15 evergreens systemd[1]: Reached target network-online.target - Network is Online.
...

我怀疑这也导致它NetworkManager无法运行。

Systemd 在以下方面均未显示任何问题:

$ sudo systemd-analyze verify networkd-dispatcher.service
$ sudo systemd-analyze verify NetworkManager.service
$

但日志实际上显示了更多的订购周期,并且显示在verify multi-user.target:

$ journalctl -b 0 | grep "break.*cycle"
...
$ sudo systemd-analyze verify multi-user.target
...

例如网络:

$ sudo systemd-analyze verify multi-user.target 2>&1 | grep -i netwo
multi-user.target: Found dependency on network.target/start
ubuntu-advantage.service: Found ordering cycle on network.target/start
ubuntu-advantage.service: Job network.target/start deleted to break ordering cycle starting with ubuntu-advantage.service/start
multi-user.target: Found ordering cycle on networkd-dispatcher.service/start
multi-user.target: Job networkd-dispatcher.service/start deleted to break ordering cycle starting with multi-user.target/start
multi-user.target: Found ordering cycle on NetworkManager.service/start
multi-user.target: Job NetworkManager.service/start deleted to break ordering cycle starting with multi-user.target/start

但是,sudo systemd-analyze verify multi-user.target 每次运行它时,它似乎都会打印不同的东西?这可能吗?有时它会打印更多,有时只打印 1 个单位。

我尝试绘制Unix Stackexchange 上multi-user.target以下答案的依赖关系:

$ sudo systemd-analyze verify multi-user.target 2>&1 |\
  perl -lne 'print $1 if m{Found.*?on\s+([^/]+)}' |\
  xargs --no-run-if-empty systemd-analyze dot | dot -Tsvg > cycle.svg

我没看到那里有循环。另外,图表很大,难以阅读。我尝试“放大”一些单位,但我也没有看到那里有循环:

$ echo multi-user.target networkd-dispatcher.service basic.target |\
  xargs --no-run-if-empty systemd-analyze dot |\
  dot -Tsvg > cycle.svg

由于systemd-analyze verify几乎每次运行时都会打印不同的东西,所以这些图表可能不可信。

查看单个单元,我没有发现问题。NetworkManager依赖关系似乎很好:

$ cat /usr/lib/systemd/system/NetworkManager.service
[Unit]
Description=Network Manager
Documentation=man:NetworkManager(8)
Wants=network.target
After=network-pre.target dbus.service
Before=network.target
BindsTo=dbus.service
...

[Install]
WantedBy=multi-user.target
Also=NetworkManager-dispatcher.service

从 Corsair 的常规 NVMe 驱动器启动时,我遇到了类似的问题。当 Corsair NVMe 的启动由于某个特定单元而异常缓慢时,我从未遇到过这种情况。(安装 HDD 磁盘/etc/fstab- 它不再存在fstab,因此不会减慢启动速度。)

也就是说,我认为这个问题只有在启动顺序很快时才会发生。虽然我不明白为什么会这样。为什么依赖关系图中的问题只会在快速启动时出现?

有人可以建议如何追踪订购周期吗?

每次打印不同的东西是怎么回事systemd-analyze verify multi-user.target?这是一种真正已知的行为吗?它如何遍历依赖关系图,它是随机的吗?这是否与导致 systemd 在启动期间删除单元但相同单元稍后运行良好的原因有关?

24.04
  • 1 1 个回答
  • 19 Views

1 个回答

  • Voted
  1. Best Answer
    xealits
    2024-10-23T04:10:40+08:002024-10-23T04:10:40+08:00

    我进一步研究了systemd-analyze verify一下。每次运行它时,它确实会打印出随机数量的排序周期!(Unix Exchange 上的相应问题。)结果发现自定义mount单元以某种方式导致了这种情况。我刚刚注意到这个mount单元出现在“找到排序周期”的每个块中,如下所示:

    $ systemd-analyze verify multi-user.target
    ...
    sysinit.target: Found ordering cycle on local-fs.target/start
    sysinit.target: Found dependency on <<<media-user-b.mount>>>/start
    sysinit.target: Found dependency on multi-user.target/start
    sysinit.target: Found dependency on thermald.service/start
    sysinit.target: Found dependency on sysinit.target/start
    sysinit.target: Job local-fs.target/start deleted to break ordering cycle starting with sysinit.target/start
    

    当mount设备被禁用时,systemd-analyze verify找不到排序周期并且启动运行正常。

    所以,启动失败一定是由这些随机出现的排序周期引起的,这些排序周期会systemd随机删除一些单元,包括NetworkManager。

    我不明白为什么该设备会导致循环。特别是为什么它是随机的。它是一个简单的安装座,在类似以下操作后附加一堆备份 HDD 驱动器multi-user.target:

    [Unit]
    Description=Mount BTRFS backup b filesystem
    After=multi-user.target
    
    [Mount]
    What=/dev/disk/by-label/backups_b
    Where=/media/<user>/b
    Type=btrfs
    Options=defaults
    
    LazyUnmount=yes
    
    [Install]
    WantedBy=multi-user.target
    

    因此,根据 reddit 的建议,我禁用了这个mount单元并添加并启用了一个automount触发挂载的单元:

    [Unit]
    Description=Automount backup disks
    
    [Automount]
    Where=/media/<user>/b
    
    [Install]
    WantedBy=multi-user.target
    
    • 0

相关问题

  • 安装 24.04 时出现问题

  • 在 Ubuntu 24.04 中,无法点击最大化应用程序的整个右上角

  • 我有一个关于在 LTS 和基本版本之间下载 Ubuntu 版本的问题

  • 24.04 LTS 文本在悬停之前不会显示

  • 软件精品店无法在Ubuntu 24.04 LTS上启动。

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve