Linux怎么查看启动项?linux查看开机启动服务命令

在Linux系统中查看启动项最核心的方法是使用systemctl list-unit-files --type=service命令来筛选启用状态的服务,而排查启动慢或异常则需结合systemd-analyze blame命令分析耗时瓶颈。

很多刚接触Linux的管理员在遇到服务器开机慢、服务启动失败或者想清理不必要的后台进程时,往往感到无从下手,Linux的启动过程并不是黑盒,systemd作为现代Linux发行版的标准初始化系统,提供了非常透明的日志和分析工具,只要掌握正确的命令组合,你就能像医生看X光片一样,清晰地看到系统启动的每一个环节。

示例如何创建一个开机启动的systemd服务
加载中
示例如何创建一个开机启动的systemd服务

如何查看当前启用的服务列表

要理解系统的启动状态,首先得知道哪些服务在开机时被加载了,这是排查问题的第一步,也是日常维护中最基础的操作。

使用systemctl筛选启用服务

在传统的SysVinit时代,管理员需要去/etc/init.d/目录下一个个查看脚本。systemctl命令提供了更直观的接口。

  • 列出所有服务状态:运行systemctl list-unit-files --type=service,这个命令会列出所有已知的服务单元,并显示它们是enabled(启用)、disabled(禁用)还是static(静态)。
  • 只看启用的服务:为了减少干扰,通常只关心那些开机自启的服务,你可以配合grep命令过滤,systemctl list-unit-files --type=service | grep enabled
  • 查看具体服务的状态:如果你知道某个特定服务(如nginx)是否自启,可以直接运行systemctl is-enabled nginx,它会直接返回enableddisabled,非常适合脚本判断。

理解”enabled”与”active”的区别

这是一个常见的误区,很多用户混淆了”开机自启”和”当前运行”。

  • Enabled(启用):指的是服务被配置为在系统启动时自动加载,这就像是你把闹钟设好了,但还没到响铃时间。
  • Active(活动)

    Linux怎么查看启动项?linux查看开机启动服务命令

    :指的是服务当前正在内存中运行,这就像闹钟正在响。

  • 场景示例:如果你重启了服务器,发现Nginx没起来,检查is-enabled发现是enabled,但is-activeinactive,说明配置没问题,但服务启动失败了,需要去查日志。

深度分析启动耗时与瓶颈

当用户抱怨”我的Linux服务器开机太慢了”时,光看列表是不够的,需要量化分析,业内专家指出,系统启动时间的瓶颈通常集中在磁盘I/O或某个耗时过长的服务依赖上。

使用systemd-analyze进行时间剖析

systemd-analyze是systemd自带的瑞士军刀,专门用于分析启动性能。

  • 查看总耗时:运行systemd-analyze,它会输出内核启动时间和用户空间启动时间,如果总时间超过10秒,通常就需要优化。
  • 查找最慢的服务:运行systemd-analyze blame,这是最关键的一步,它会列出所有服务,并按启动耗时从长到短排序。
    • 你可能会看到networking.service耗时2.5秒,mysql.service耗时3.0秒。
    • 注意:这里的耗时是指服务从开始执行到报告”启动完成”所花费的时间,而不是它初始化整个数据库的时间。
  • 可视化树状图:对于喜欢图形化思维的管理员,systemd-analyze plot > boot.svg可以生成一个SVG格式的启动依赖树,打开这个文件,你可以直观地看到哪些服务是并行启动的,哪些是串行阻塞的。

如何解读blame输出

blame的输出中,你需要关注那些耗时异常长的服务。

  1. 网络相关服务:如果NetworkManagersystemd-networkd耗时很长,通常是因为DHCP获取IP地址超时,或者DNS解析配置错误。
  2. 数据库服务:MySQL或PostgreSQL在启动时需要恢复事务日志,如果数据量大,耗时较长是正常的,但不应成为启动阻塞点。
  3. Linux怎么查看启动项?linux查看开机启动服务命令

  4. 第三方守护进程:某些监控代理或安全软件可能会在启动时进行深度扫描,导致延迟。

排查启动失败的服务与日志

启动慢不是唯一的问题,服务启动失败更是致命错误,这时需要深入查看日志。

使用journalctl追踪启动日志

journalctl是systemd的日志查看器,它比传统的/var/log/syslog更结构化。

  • 查看本次启动的所有日志:运行journalctl -b,这会显示当前引导会话的所有日志。
  • 查看失败的服务:运行journalctl -b -p err,这会过滤出本次启动过程中产生的所有错误级别日志。
  • 查看特定服务的日志:如果nginx启动失败,运行journalctl -u nginx -b,这会专门显示nginx在启动过程中的输出,包括配置文件错误、端口占用等信息。

常见启动失败场景与对策

  • 依赖未满足:如果服务A依赖服务B,而B启动失败,A也会失败,通过systemctl list-dependencies <service>可以查看依赖树,找出上游故障点。
  • 权限问题:很多服务以特定用户运行,如果配置文件权限不对,服务会拒绝启动,检查日志中的”Permission denied”关键字。
  • 端口冲突:Web服务启动失败常因端口被占用,使用ss -tlnp查看端口占用情况,找出冲突进程。

优化启动速度与清理冗余

在明确了哪些服务在运行、哪些耗时最长之后,下一步就是优化,行业共识认为,减少不必要的自启服务是提升启动速度最有效的手段。

禁用不必要的自启服务

  • 识别可禁用的服务:查看systemctl list-unit-files --type=service | grep enabled的输出,对于开发机或特定用途的服务器,像cups(打印服务)、bluetooth(蓝牙)、avahi-daemon(mDNS)等服务通常是不需要的。
  • 执行禁用操作

    Linux怎么查看启动项?linux查看开机启动服务命令

    :使用sudo systemctl disable <service_name>,这不会停止当前运行的服务,但会阻止它在下次启动时自动加载。

  • 验证结果:再次运行systemctl is-enabled <service_name>,确认返回disabled

调整服务启动顺序

对于必须运行的服务,可以通过修改unit文件来优化依赖关系。

  • 并行启动:确保不相关的服务没有不必要的After=依赖,systemd默认会并行启动没有依赖关系的服务,最大化利用多核CPU。
  • 延迟启动:对于非关键服务,可以使用StartLimitIntervalSec或自定义的timer单元来延迟启动,避免在启动高峰期占用资源。

常见问题解答

linux 查看启动项 命令

最常用的命令是systemctl list-unit-files --type=service,它可以列出所有服务及其启用状态,如果需要查看当前正在运行的服务,可以使用systemctl list-units --type=service --state=running,对于更详细的启动耗时分析,systemd-analyze blame是首选工具,它能按时间排序显示每个服务的启动耗时。

linux 启动慢 怎么排查

首先运行systemd-analyze获取总耗时,然后使用systemd-analyze blame找出耗时最长的几个服务,针对这些服务使用journalctl -u <service_name> -b查看其启动日志,分析是配置错误、依赖阻塞还是资源竞争导致的延迟,如果是网络服务慢,检查DHCP和DNS配置;如果是数据库慢,检查数据文件权限和日志恢复情况。

如何彻底禁用某个开机自启服务

要彻底禁用某个服务的开机自启,执行sudo systemctl disable <service_name>,如果该服务当前正在运行,还可以执行sudo systemctl stop <service_name>来立即停止它,要验证是否成功,运行systemctl is-enabled <service_name>,如果返回disabled,则说明该服务已不再随系统启动而自动加载。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/453567.html

(0)
Hive数据如何导出到MySQL?Hive导出MySQL数据方法
上一篇 2026年7月4日 14:45
该ip地址的网络号是多少?如何计算ip地址的网络号和主机号
下一篇 2026年7月4日 14:46

相关推荐

  • 奔图打印机怎样连接手机,无线连接失败怎么办?

    连接奔图打印机至手机的核心在于利用官方APP或Wi-Fi Direct功能,通过无线网络实现数据传输,最稳定且功能最全的方案是下载“奔图打印”手机应用,将打印机与手机置于同一局域网下进行配对;若无路由器,亦可开启打印机的Wi-Fi热点模式直接连接,掌握这两种方法,即可轻松完成照片、文档的移动端输出,摆脱电脑线缆……

    2026年2月20日
    16800
  • 一个云服务器最多能搭建多少个IP,怎么配置多个IP?

    一个云服务器可搭建的IP数量没有固定上限,主要取决于云服务商的IP配额策略、网卡虚拟化技术以及业务实际需求,多数云平台单台云服务器默认支持1-16个IPv4地址,但通过虚拟网卡和IP别名技术,理论上可扩展至数百个,为什么IP数量不是“想开多少开多少”这个问题背后,其实是很多站长和运维人员对云网络机制的误解,云服……

    2026年8月12日
    300
  • 服务器安装安卓模拟器如何设置IdeaHub设备?,怎么用?

    在服务器上安装安卓模拟器并完成IdeaHub Board设备的安卓设置,核心在于通过ADB桥接模拟器与硬件设备,实现应用部署与远程控制,服务器安装安卓模拟器配置指南选择合适的模拟器方案服务器环境通常没有图形界面,因此需要选择支持命令行运行的模拟器,常见选项包括:Android SDK自带的模拟器,可配合emul……

    2026年7月31日
    300
  • Xbox怎么连接电脑?,Xbox手柄连不上电脑怎么办?

    将Xbox主机与电脑进行连接,能够极大地拓展游戏娱乐的边界,实现高画质录制、直播推流以及利用电脑显示器进行游戏的目的,通过无线串流或有线采集两种主要方式,用户可以根据自身网络环境和硬件配置,选择最适合的方案来获得低延迟、高画质的游戏体验,无论是为了利用高性能显示器,还是为了在笔记本上随时随地游玩,掌握正确的连接……

    2026年2月19日
    26000
  • asp如何获取网页数据库连接,asp获取网页数据库连接代码怎么写

    在ASP(Active Server Pages)开发环境中,实现高效、稳定的数据库交互是构建动态网页的核心环节,而精准获取并管理连接信息则是保障系统协同工作的基石,核心结论在于:ASP获取网页数据库连接并实现协同信息处理,必须遵循“配置集中化、连接池优化、异常捕获机制化”的原则, 这不仅能解决单点故障问题,更……

    2026年4月1日
    9100
  • acc数据库可以存多少条记录,Access数据库最大容量是多少

    ACC数据库的记录存储能力在理论上是无限的,仅受限于物理硬件的存储空间,而聊天记录的存储天数通常由平台策略决定,主流应用普遍提供7天至永久存储的差异化服务,对于企业级应用而言,数据库的效能瓶颈不在于“条数”上限,而在于单表数据量达到千万级后的查询性能下降;对于个人用户而言,聊天记录的存储时长主要取决于账号状态及……

    2026年3月24日
    13800
  • APP和网站是一样吗,企业开发APP和网站哪个更好

    APP和网站在技术架构、用户体验及后台管理上存在本质差异,企业需根据业务需求选择合适的数字化载体,从核心结论来看,APP是独立安装的移动应用,依赖设备硬件能力;网站则是通过浏览器访问的在线平台,跨平台兼容性更强,两者虽共享部分后台逻辑,但开发成本、用户粘性及功能实现路径截然不同,技术架构差异运行环境APP需下载……

    2026年3月18日
    15100
  • 安卓监听短信怎么设置?IdeaHub Board设备安卓设置教程

    实现IdeaHub Board设备对企业短信的自动化处理,核心在于利用安卓系统的广播接收器机制,并在系统设置层面赋予应用最高权限,确保应用在后台常驻并拥有读取短信的授权,这是保障业务连续性的关键前提,整个配置过程不仅涉及常规的安卓开发逻辑,更依赖于IdeaHub Board特有的企业级设置选项,任何权限缺失或系……

    2026年3月25日
    10900
  • Android OCR SDK怎么集成?Android SDK开发教程

    Android OCR SDK 的核心价值在于将非结构化图像转化为可编辑文本,显著提升移动端数据录入效率,目前主流方案已实现毫秒级识别与高精度本地化部署,在移动应用开发领域,图像识别技术已从实验室走向大规模商业落地,对于开发者而言,选择合适的 Android OCR SDK 不仅是技术选型问题,更是决定产品用户……

    行业资讯 2026年6月10日
    3000
  • GreencloudVPS新加坡机房存储型套餐值得买吗,新加坡VPS推荐

    GreencloudVPS新加坡机房上线存储型大硬盘套餐,配备10Gbps带宽与SATA RAID-10阵列,最低年付仅需30美元,是低成本搭建NAS或数据归档的理想选择,在云计算市场日益内卷的当下,单纯比拼CPU算力已无法完全满足所有用户的需求,对于需要大量存储空间、对I/O性能有一定要求但预算有限的个人开发……

    2026年6月30日
    1300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注