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://idctop.com/article/453567.html

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

相关推荐

  • 本地域名服务器最多发出多少次DNS查询,为什么有上限?

    本地域名服务器在递归解析一个完全陌生的域名时,最多会发出4次DNS查询,这4次分别指向根服务器、顶级域服务器、二级域服务器和权威服务器,这是DNS协议设计中的标准“四步解析法”,在绝大多数深度不超过5层的域名场景下,4次即为上限,DNS递归查询的完整路径第一步:从根服务器开始本地域名服务器收到客户端的解析请求时……

    2026年7月26日
    700
  • linux和windows系统如何自动切换?双系统自动切换设置方法

    Linux与Windows的自动化运维方案并非二选一,而是根据业务场景互补共存:Windows适合桌面端与遗留系统管理,Linux则是服务器集群与云原生自动化的绝对主力,二者通过PowerShell与Ansible等工具可实现跨平台统一管控,在2026年的IT基础设施环境中,单纯讨论“哪个系统更好”已经过时,企……

    2026年7月8日
    15800
  • 云服务器1h1g1m成本到底多少钱,怎么选?

    云服务器1h1g1m的月成本普遍在30-80元区间,新用户首购可低至10元以内,续费价格则回到原价,具体取决于云厂商、购买时长和地域节点,这个配置是所有云服务器里最入门的组合,1核CPU加1G内存加1M带宽,恰好够跑一个轻量网站、个人博客或者测试环境,很多人第一次买云服务器时都会盯着这个配置,因为它价格最低,但……

    2026年7月24日
    1900
  • 云服务器4G内存5M带宽能支持多少人,怎么选?

    4G内存搭配5M带宽的云服务器,在常规优化下,大约能支撑50到100人同时在线访问,具体数值取决于应用类型、代码效率以及是否使用CDN等加速手段,这个结论基于行业通用估算,并非绝对,但可作为选型参考,核心影响因素:带宽与内存的博弈带宽:流量的瓶颈5M带宽指5Mbps,换算成下载速度约为640KB/s,如果每个访……

    2026年7月26日
    1100
  • linux怎么安装autoconf?linux安装autoconf报错怎么办

    在Linux系统中安装autoconf的最快路径是使用包管理器一键部署,CentOS/RHEL系列执行sudo yum install autoconf,Ubuntu/Debian系列执行sudo apt-get install autoconf,这能自动解决依赖并配置好m4等前置工具,很多开发者在编译开源软件……

    2026年7月7日
    15900
  • Linux频率怎么调整最合适?,怎么设置CPU频率

    Linux frequency 调优的核心在于通过合理的 governor 策略和频率范围设置,让系统在性能和功耗之间达到最佳平衡,具体操作可通过 cpufrequtils 工具或 /sys 文件系统完成,linux frequency 的核心概念:CPU 频率调节的工作原理什么是 CPU Frequency……

    2026年7月20日
    1900
  • IntelliJ在Linux上如何安装,怎么配置?

    IntelliJ IDEA在Linux上能提供接近原生IDE的体验,但需要针对Linux发行版进行安装调优和硬件加速配置,才能充分发挥其性能,IntelliJ IDEA Linux 安装流程详解对于刚接触Linux的Java开发者,第一步往往是搞清楚如何把IntelliJ IDEA装到系统里,目前主流的安装方式……

    2026年7月21日
    2300
  • KTV点歌机服务器一台多少钱?,哪个牌子好

    KTV点歌机服务器的价格并非固定数字,入门级机架式服务器搭配基础点歌系统通常在3000元至6000元区间,而面向中型商务KTV的中高端配置则需要15000元到30000元,大型连锁场所的定制方案可能超过5万元, 具体选型还需结合包房数量、曲库规模、是否连锁等因素,下面从成本构成、场景预算、供应商选择等方面展开说……

    2026年8月10日
    400
  • 一个App服务器一年要多少钱?,租用服务器价格多少?

    一个app服务器一年大约需要1000元到10000元人民币不等,具体费用取决于业务规模、带宽需求以及防御标准,决定app服务器价格的四个核心因素硬件配置:CPU与内存的算力博弈app的后端逻辑全靠服务器CPU来算,如果是简单的信息展示类app,2核CPU配4G内存足够应付早期流量,如果是电商秒杀或者带实时音视频……

    2026年7月30日
    300
  • Linux Socket连接断开怎么办?如何排查网络异常

    Linux Socket断开通常由对端发送FIN包、网络中断、超时未心跳或进程异常退出触发,排查需结合ss -t查看状态、dmesg查内核日志及应用层错误码,在网络通信中,Socket连接就像两条城市间的电话线,当一方挂断或线路被剪断,连接就会终止,对于开发者而言,理解这一过程并非为了背诵RFC文档,而是为了在……

    2026年7月5日
    15600

发表回复

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