我更喜欢在启动计算机时网络自行设置,但我更喜欢早点启动并在输入密码时连接网络连接等等。
遗憾的是,据我在启动期间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 进行配置。