如何在 systemd 上使用网络管理器加速或摆脱启动?

如何在 systemd 上使用网络管理器加速或摆脱启动?

网络管理器是阻止我的系统启动时间变得几乎不存在的一件事。我正在连接 wi-fi。我的引导链表明网络管理器出了什么问题:

graphical.target @12.494s
└─multi-user.target @12.494s
  └─ntpd.service @12.198s +295ms
    └─network.target @12.172s
      └─NetworkManager.service @5.914s +6.258s
        └─basic.target @5.913s
          └─timers.target @5.912s
            └─systemd-tmpfiles-clean.timer @5.912s
              └─sysinit.target @5.912s
                └─systemd-update-utmp.service @5.861s +50ms
                  └─systemd-tmpfiles-setup.service @5.834s +26ms
                    └─local-fs.target @5.833s
                      └─opt.mount @5.712s +120ms
                        └─[email protected] @5.303s +395ms
                          └─dev-sda7.device @5.302s

当我使用 wpa_supplicant 转向静态网络启动时,时间减少了相当多。不过我想在启动后使用网络管理器。有什么方法可以使网络管理器更快(Wicd 没有帮助它有更糟糕的启动时间),或者在启动顺序中删除/替换它并稍后加载它(例如,可能仅在加载 GUI 之后)。这是我的整个责任表,包含所有服务:

  6.258s NetworkManager.service
  4.501s gdm.service
  2.436s thermald.service
  2.429s systemd-logind.service
  1.297s systemd-vconsole-setup.service
  1.125s systemd-binfmt.service
  1.120s kmod-static-nodes.service
  1.042s colord.service
   913ms systemd-modules-load.service
   851ms systemd-remount-fs.service
   765ms [email protected]
   578ms sys-kernel-debug.mount
   576ms dev-hugepages.mount
   576ms polkit.service
   568ms dev-mqueue.mount
   523ms systemd-udev-trigger.service
   519ms systemd-sysctl.service
   464ms wpa_supplicant.service
   438ms upower.service
   405ms tmp.mount
   395ms [email protected]
   352ms accounts-daemon.service
   295ms ntpd.service

答案1

您根本没有 NetworkManager-wait-online.service 吗?如果您的系统不依赖网络启动,这将是您可以禁用/屏蔽的一件事。这里的启动过程也花费了大约 6 秒的时间。您可能必须通过屏蔽它,systemctl mask NetworkManager-wait-online.service因为它似乎禁用它不会持续存在。

还可能值得查看通过
systemd-analyze plot > boot.svg to查看启动过程是否确实在网络管理器上等待或启动是否继续并行而创建的图表。

您还可以尝试通过添加一个部分来进一步调试网络管理器

[logging]
level=DEBUG

进入/etc/NetworkManager/NetworkManager.conf看看它在应该阻止你启动的时间内正在做什么。可以通过获取
journalctl -b -u NetworkManager.service当前启动的日志。

相关内容