当前位置:首页 > 短网址资讯

Linux 系统开机启动项清理

www.ft12.com9年前 (2017-09-05)短网址资讯1623
一般情况下,常规用途的 Linux 发行版在开机启动时拉起各种相关服务进程,包括许多你可能无需使用的服务。
-- David Both


本文导航


一般情况下,常规用途的 Linux 发行版在开机启动时拉起各种相关服务进程,包括许多你可能无需使用的服务,例如蓝牙bluetooth、Avahi、 调制解调管理器ModemManager、ppp-dns(LCTT 译注:此处作者笔误 ppp-dns 应该为 pppd-dns) 等服务进程,这些都是什么东西?用于哪里,有何功能?

Systemd 提供了许多很好的工具用于查看系统启动情况,也可以控制在系统启动时运行什么。在这篇文章中,我将说明在 Systemd 类发行版中如何关闭一些令人讨厌的进程。

查看开机启动项

在过去,你能很容易通过查看 /etc/init.d 了解到哪些服务进程会在引导时启动。Systemd 以不同的方式展现,你可以使用如下命令罗列允许开机启动的服务进程。

$ systemctl list-unit-files --type=service | grep enabledaccounts-daemon.service                    enabledanacron-resume.service                     enabledanacron.service                            enabledbluetooth.service                          enabledbrltty.service                             enabled[...]

在此列表顶部,对我来说,蓝牙服务是冗余项,因为在该电脑上我不需要使用蓝牙功能,故无需运行此服务。下面的命令将停止该服务进程,并且使其开机不启动。

$ sudo systemctl stop bluetooth.service$ sudo systemctl disable bluetooth.service

你可以通过下面命令确定是否操作成功。

$ systemctl status bluetooth.service bluetooth.service - Bluetooth service  Loaded: loaded (/lib/systemd/system/bluetooth.service; disabled; vendor preset: enabled)  Active: inactive (dead)    Docs: man:bluetoothd(8)

停用的服务进程仍然能够被另外一个服务进程启动。如果你真的想在任何情况下系统启动时都不启动该进程,无需卸载该它,只需要把它掩盖起来就可以阻止该进程在任何情况下开机启动。

$ sudo systemctl mask bluetooth.service Created symlink from /etc/systemd/system/bluetooth.service to /dev/null.

一旦你对禁用该进程启动而没有出现负面作用感到满意,你也可以选择卸载该程序。

通过执行命令可以获得如下服务列表:

$ systemctl list-unit-files --type=service                       UNIT FILE                                  STATE   accounts-daemon.service                    enabledacpid.service                              disabledalsa-restore.service                       static    alsa-utils.service                         masked

你不能启用或禁用静态服务,因为静态服务被其他的进程所依赖,并不意味着它们自己运行。

哪些服务能够禁止?

如何知道你需要哪些服务,而哪些又是可以安全地禁用的呢?它总是依赖于你的个性化需求。

这里举例了几个服务进程的作用。许多服务进程都是发行版特定的,所以你应该看看你的发行版文档(比如通过 google 或 StackOverflow)。


accounts-daemon.service 是一个潜在的安全风险。它是 AccountsService 的一部分,AccountsService 允许程序获得或操作用户账户信息。我不认为有好的理由能使我允许这样的后台操作,所以我选择掩盖mask该服务进程。
avahi-daemon.service 用于零配置网络发现,使电脑超容易发现网络中打印机或其他的主机,我总是禁用它,别漏掉它。
brltty.service 提供布莱叶盲文设备支持,例如布莱叶盲文显示器。
debug-shell.service 开放了一个巨大的安全漏洞(该服务提供了一个无密码的 root shell ,用于帮助 调试 systemd 问题),除非你正在使用该服务,否则永远不要启动服务。
ModemManager.service 该服务是一个被 dbus 激活的守护进程,用于提供移动宽频broadband(2G/3G/4G)接口,如果你没有该接口,无论是内置接口,还是通过如蓝牙配对的电话,以及 USB 适配器,那么你也无需该服务。
pppd-dns.service 是一个计算机发展的遗物,如果你使用拨号接入互联网的话,保留它,否则你不需要它。
rtkit-daemon.service 听起来很可怕,听起来像是 rootkit。 但是你需要该服务,因为它是一个实时内核调度器real-time kernel scheduler
whoopsie.service 是 Ubuntu 错误报告服务。它用于收集 Ubuntu 系统崩溃报告,并发送报告到 https://daisy.ubuntu.com 。 你可以放心地禁止其启动,或者永久的卸载它。
wpa_supplicant.service 仅在你使用 Wi-Fi 连接时需要。


系统启动时发生了什么?

Systemd 提供了一些命令帮助调试系统开机启动问题。该命令会重演你的系统启动的所有消息。

$ journalctl -b-- Logs begin at Mon 2016-05-09 06:18:11 PDT,end at Mon 2016-05-09 10:17:01 PDT. --May 16 06:18:11 studio systemd-journal[289]:Runtime journal (/run/log/journal/) is currently using 8.0M.Maximum allowed usage is set to 157.2M.Leaving at least 235.9M free (of currently available 1.5G of space).Enforced usage limit is thus 157.2M.[...]

通过命令 journalctl -b -1 可以复审前一次启动,journalctl -b -2 可以复审倒数第 2 次启动,以此类推。

该命令会打印出大量的信息,你可能并不关注所有信息,只是关注其中问题相关部分。为此,系统提供了几个过滤器,用于帮助你锁定目标。让我们以进程号为 1 的进程为例,该进程是所有其它进程的父进程。

$ journalctl _PID=1May 08 06:18:17 studio systemd[1]: Starting LSB: Raise network interfaces....May 08 06:18:17 studio systemd[1]: Started LSB: Raise network interfaces..May 08 06:18:17 studio systemd[1]: Reached target System Initialization.May 08 06:18:17 studio systemd[1]: Started CUPS Scheduler.May 08 06:18:17 studio systemd[1]: Listening on D-Bus System Message Bus SocketMay 08 06:18:17 studio systemd[1]: Listening on CUPS Scheduler.[...]

这些打印消息显示了什么被启动,或者是正在尝试启动。

一个最有用的命令工具之一 systemd-analyze blame,用于帮助查看哪个服务进程启动耗时最长。

$ systemd-analyze blame         8.708s gpu-manager.service         8.002s NetworkManager-wait-online.service         5.791s mysql.service         2.975s dev-sda3.device         1.810s alsa-restore.service         1.806s systemd-logind.service         1.803s irqbalance.service         1.800s lm-sensors.service         1.800s grub-common.service

这个特定的例子没有出现任何异常,但是如果存在系统启动瓶颈,则该命令将能发现它。


扫描二维码推送至手机访问。

版权声明:本文由短链接发布,如需转载请注明出处。

本文链接:https://www.ft12.com/article_459.html

分享给朋友:

相关文章

FT12短网址教你如何利用大数据算法定位网站性能瓶颈(BOSS)

FT12短网址教你如何利用大数据算法定位网站性能瓶颈(BOSS)

FT12短网址资讯:架构师非常关注性能问题,上篇文章中我们介绍了京东的自动化压测体系 ForceBot,这篇文章来自 LinkedIn 的技术博客,介绍如何通过大数据算法来分析调用数据,自动定位性能瓶颈。本文由高可用架构翻译。背景我们 FT…

如何在一个月内,低成本获取前1000个高质量种子用户?

【来源丨人人都是产品经理】【编辑丨善小花】 要钱没钱,要资源没资源,想到起步获取种子用户就头大?辛辛苦苦熬夜写出的内容没人看,拉不来一个用户?拉来的用户只想褥羊毛不会反馈贡献,羊毛褥完就跑?眼看有上千号种子用户,但是却没有几个能够…

生鲜配送服务的未来在哪?答案可能得从它的过去中寻找

作者:喜汤按:Pique基金创始投资人、综合投资作者Bonnie Foley-Wong在 Quora 回答了“是什么让生鲜食品配送公司真正走向主流?”这一问题。她举了五个因素来回答该问题,最终得出短期内,生鲜食品配送公司可能不会走向主流的结…

【官方说法】只需两步,正确识别百度蜘蛛

【官方说法】只需两步,正确识别百度蜘蛛

经常听到站长们问,百度蜘蛛是什么?最近百度蜘蛛来的太频繁服务器抓爆了,最近百度蜘蛛都不来了怎么办,还有很多站点想得到百度蜘蛛的IP段,想把IP加入白名单,但IP不固定,我们无法对外公布。那怎么才能识别正确的百度蜘蛛呢?来来来,以短网址站为例…

【官方说法】网站流量异常,如何正确反馈?

【官方说法】网站流量异常,如何正确反馈?

网站流量异常一直是站长们最头疼的问题,而每次在反馈中心提交问题,经常得到回复请详细描述您的问题,怎么详细描述问题呢?为此,学院君特邀反馈中心值班员,来给大家详解如何正确提交反馈。在反馈中心后台,值班员最常看到的反馈往往是:“我的网站流量下降…

从几号发工资,就能看出一家公司的好坏?

从几号发工资,就能看出一家公司的好坏?

对很多工薪族来说,发工资这一天基本上是脱贫致富的重要日子,也是很多人的还款日子,交房租,还信用卡、白条、花呗··· 想到接下来的日子又得靠拆东墙补西墙过。即使发薪日就是还款日,但这个美好的日子还是值得每个职场人期待的!为什么有的人5号10号…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。