Ubuntu 20.04 - 如何在启动期间停止等待 NetworkManager.service?

Ubuntu 20.04 - 如何在启动期间停止等待 NetworkManager.service?

我更喜欢在启动计算机时网络自行设置,但我更喜欢早点启动并在输入密码时连接网络连接等等。

遗憾的是,据我在启动期间systemd-analyze critical-chain等待启动。NetworkManager.service

有没有办法改变这种情况,使其仍然执行网络操作并且不会延迟启动?

graphical.target @8.083s
└─multi-user.target @8.083s
  └─postfix.service @8.075s +7ms
    └─[email protected] @3.904s +4.169s
      └─network-online.target @3.880s
        └─network.target @3.880s
          └─NetworkManager.service @3.495s +384ms
            └─dbus.service @3.492s
              └─basic.target @3.472s
                └─sockets.target @3.472s
                  └─docker.socket @3.469s +2ms
                    └─sysinit.target @3.464s
                      └─snapd.apparmor.service @3.131s +332ms
                        └─apparmor.service @2.990s +136ms
                          └─local-fs.target @2.989s
                            └─run-snapd-ns-cups.mnt.mount @5.417s
                              └─run-snapd-ns.mount @4.544s
                                └─local-fs-pre.target @528ms
                                  └─keyboard-setup.service @376ms +152ms
                                    └─systemd-journald.socket @361ms
                                      └─system.slice @354ms
                                        └─-.slice @354ms

答案1

有两种方法:

1. 编辑覆盖配置(/etc/systemd/system/network-online.target.d/override.conf

键入命令sudo systemctl edit network-online.target

粘贴以下配置行

[Unit]
After=graphical.target

这将在 创建一个覆盖配置/etc/systemd/system/network-online.target.d/override.conf,它将部分覆盖/etc/systemd/system/network-online.target

2. 直接编辑单位(/etc/systemd/system/network-online.target

键入命令sudo systemctl edit network-online.target --full

After=在部分中查找[Unit]并将值更改为graphical.target

如果您不小心破坏了配置,您可以在 找到原始配置/lib/systemd/system/network-online.target


  • sudo systemctl edit --force --full <your-service.service>创建新服务

  • man systemd.unit阅读手册

  • multi-user.target图形服务在之前graphical.target (参考)

man systemd.special阅读特殊的 systemd 单元手册

网络在线.目标
严格要求配置网络连接的单元应引入 network-online.target(通过 Wants= 类型依赖项)并对其排序。此目标单元旨在引入一项服务,该服务会延迟进一步执行,直到网络充分设置为止。这究竟需要什么,则留给网络管理服务的实现。

多用户目标
用于设置多用户系统(非图形化)的特殊目标单元。此单元由图形化引入。多用户系统所需的单元应在安装期间向此单元添加其单元的 Wants= 依赖项。最好通过单元的 [Install] 部分中的 WantedBy=multi-user.target 进行配置。

图形目标
用于设置图形登录屏幕的特殊目标单元。这将引入 multi-user.target。图形登录所需的单元应在安装期间将其单元的 Wants= 依赖项添加到此单元(或 multi-user.target)。最好通过单元的 [Install] 部分中的 WantedBy=graphical.target 进行配置。

相关内容