越来越多的操作系统变得“笨重”,大量服务在后台运行。虽然它们可能不会使用太多 CPU 资源,但它们会增加启动时间和 RAM 使用率。
一些 Linux 发行版包含所有内容,目的是让用户更轻松地使用。这使得文件共享或打印等事情变得越来越有创意。不幸的是,这样做的唯一方法是创建数百个实用程序供人们找到他们需要的东西。
幸运的是,开源操作系统让您能够禁用或删除任何不需要的东西。第一个选项,如何禁用服务-将在本文中介绍。当禁用而不是移除组件时,所有东西都被永久损坏的风险不太可能发生。如果您发现有用的东西停止工作,您可以重新激活该服务。
通过禁用不必要的服务使 Linux 启动更快
- 分析加载服务所需的时间
- 使用 systemctl 禁用不必要的服务
- 使用 systemctl 隐藏服务
分析加载服务所需的时间
大多数基于 Linux 的操作系统已切换到 Systemd。在 Systemd 的实用程序中,有一个程序可以让用户分析系统启动速度。具体来说,它向用户显示了启动所需的总时间和加载每个服务所需的时间。请注意,某些服务是并行加载的。因此,如果第一个服务需要 2 秒,而另一个服务需要 3 秒来加载,这并不意味着这两个服务需要 5 秒来加载。
打开终端并输入以下命令:
systemd-analyze
这显示了加载基本系统服务和Linux内核需要多长时间,不包括图形界面的启动时间。换句话说,这是一个必要的时间,因为内核一直加载到用户到达 Linux 控制面板,如下所述:
如果你没有安装图形界面,这就是你在屏幕上看到的。
不过也可以通过如下命令查看图形界面需要初始化的时间:
systemd-analyze critical-chain graphics.target
此命令显示图形用户界面的加载时间为 2,126 秒,这还不包括加载桌面实用程序所需的时间。要启用或禁用这些实用程序,请启动桌面环境启动管理器。
最后,帮助 Linux 更快启动的最有用的命令可能是:
systemd-分析责备
您可以使用箭头键或 PAGE UP 和 PAGE DOWN 键浏览列表。按 q 退出。
使用systemctl禁用不必要的服务
如上图所示,服务 snapd 需要 1.295 秒才能加载。在 SSD 上,这个时间段可以忽略不计。但是在硬盘驱动器上,这些服务又会失去一定的加载时间,加载它们所需的总时间并不小。此外,在 SSD 上,许多服务是并行加载的,产生了惊人的效果。相反,在硬盘驱动器上,并行服务负载难以实现。读卡器放在盘片上(盘片是一个圆形磁盘,磁数据存储在硬盘中)必须从一个扇区切换到另一个扇区,因此并行数据读取几乎是不可能的。.
为了更容易理解,想象一下:如果SSD上有5个服务,每个服务需要一秒的启动时间,那么加载所有这些服务所需的总时间小于 1.2 秒。但是在硬盘上,有 5 个类似的服务,总加载时间会超过 5 秒。
假设你不需要服务 snapd,可以用这个命令禁用它:
sudo systemctl disable snapd.service
但是,如果您重新启动,您将看到守护进程 snap 仍在运行。原因可能是因为其他依赖已经启动了它,即使它被禁用了。尝试查看导致此问题的原因:
systemd-分析责备 | grep snap
snapd.seed.service 和 snapd.socket 是这里的罪魁祸首。子服务可能需要启动其原始服务。禁用服务时,它只要求它在您启动时不会自动启动。但是有一个有效的方法可以解决这个问题。
使用systemctl隐藏服务
sudo systemctl mask snapd.service
这基本上让服务文件为空,让应用程序无法启动服务。
在大多数情况下,禁用服务并不太复杂。选择下面的示例向您展示如何处理更困难的情况。在这种情况下,应禁用或隐藏 snapd.seed.service 和 snapd.socket。
下图显示开机时间有所提升。
引导时间从 4,078 秒减少到 0.52 秒,减少到 15%。还不错。这仅考虑在 SSD 上禁用的服务。在硬盘上,很容易获得更好的结果。
在这个特定的例子中,许多服务将被如下命令禁用:
sudo systemctl mask avahi-daemon.service ModemManager.service thermod.service pppd-dns.service
如果您喜欢图形应用程序来管理您的服务,您可以考虑使用 Systemd Manager。但是,您可以做的将仅限于此工具,因为命令行提供了更大的灵活性。
祝你好运!
查看更多:
- 加速 Ubuntu 系统的 6 种方法
- 帮助 Linux 更快启动的 10 种方法
- 用于救援、恢复 Linux、Window、Mac 的 10 个 Linux 工具
评论