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,它会直接返回enabled或disabled,非常适合脚本判断。

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

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

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

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

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

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

深度分析启动耗时与瓶颈

当用户抱怨”我的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. 网络相关服务:如果NetworkManager或systemd-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

相关推荐

  • 一台2U服务器一般用多少安电,怎么选电源?

    一台2U服务器在220V标准电压下,典型运行电流在1.5A到4A之间,具体数值取决于CPU、内存、硬盘数量以及负载状态,实际选型时建议按电源额定电流的80%规划,2U服务器电流计算的关键因素要准确估算一台2U服务器的电流,不能只看电源标签上的额定值,更需要拆解内部硬件对功耗的真实消耗,电流(安培)= 功率(瓦特……

    2026年7月24日
    2100
  • 服务器2t一年大概多少钱,哪家性价比最高?

    一台配备2TB内存的服务器,年租费用通常在6万至18万元之间,具体取决于CPU、存储、带宽及服务商资质,不少用户问“服务器2t多少钱一年”,这个配置常见于大型数据库、虚拟化集群或高并发中间件场景,价格不是固定数字,但从行业参数和主流方案来看,我们可以梳理出清晰的预算框架,影响服务器2T租用价格的核心因素CPU与……

    2026年8月23日
    1300
  • gom微端服务器多少钱一个月,哪个配置性价比高?

    GOM微端服务器的月租费用没有固定标准,取决于配置、带宽和机房质量,价格从几十元到数百元不等,建议优先选择持有相关资质、拥有自营机房的服务商,GOM微端服务器主要用于传奇类游戏的微端更新和快速登录,对网络稳定性和带宽传输速度有较高要求,很多玩家在选购时首先关注价格,但价格背后是服务商的基础设施与服务质量,下面从……

    2026年7月28日
    1000
  • 32g服务器内存条现在多少钱一个,怎么选?

    频率与类型叠加影响同代际下,频率越高价格越贵,DDR4 3200MHz比2933MHz贵10%-15%,而3600MHz以上则更稀缺,内存类型同样关键:普通UDIMM最便宜,ECC(带纠错)贵20%左右,REG(带寄存器)比ECC再贵10%-15%,低电压版(如DDR4L)通常比标准电压版更贵,简米科技内部测试……

    2026年7月28日
    800
  • linux应用试题难吗?linux系统管理员面试题及答案

    Linux应用试题的核心在于考察从基础命令到系统调优的全栈能力,备考者需重点掌握文件系统权限、进程管理及网络配置三大模块,而非单纯记忆命令参数,在2026年的技术招聘市场中,企业对于Linux运维与开发人员的考核标准已经发生了显著变化,过去的“背八股文”模式逐渐失效,取而代之的是基于真实生产场景的故障排查与性能……

    2026年7月7日
    18100
  • 熹妃q传1.1.2有几个服务器,哪个服务器人最多?

    熹妃q传1.1.2版本当前共开放了超过300组服务器,覆盖iOS、Android及官方渠道,满足不同区服玩家的匹配需求,这个数字并非固定,而是根据玩家活跃度动态调整,但截至2026年第一季度,稳定在300组上下,很多玩家关心这个数字,因为它直接关系到能否与朋友合服、延迟高低以及后续的服务器生态,下面我们从服务器……

    2026年8月21日
    600
  • 2C8G服务器到底跑多少线程,配置怎么选

    2核8G的服务器配置,线程数通常建议设置在4到8个,但具体数值需要根据应用场景、CPU是否支持超线程以及实际负载来动态调整,没有一刀切的标准答案,核心影响因素:CPU核心与超线程物理核心与逻辑线程2C8G中的“2C”指的是2个物理核心,如果CPU支持超线程技术(Intel的HT或AMD的SMT),则操作系统会识……

    2026年8月20日
    800
  • Windows下如何安装Docker?Linux容器化部署教程

    在 Windows 上运行 Docker 并管理 Linux 容器,主要依赖于 Docker Desktop for Windows,由于 Docker 最初是为 Linux 内核设计的,而 Windows 使用 NTFS 内核,Docker 在 Windows 上运行 Linux 容器时,需要通过一个轻量级的……

    2026年7月9日
    18600
  • 菲律宾服务器CN2宽带多少钱,价格贵不贵?

    菲律宾服务器CN2宽带的价格根据配置和带宽不同,月付通常在800元至3000元之间,具体取决于线路类型(CN2 GIA或CN2 GT)、硬件配置和IP数量,理解CN2线路与菲律宾服务器的组合价值CN2是中国电信推出的下一代承载网络,分为CN2 GT(Global Transit)和CN2 GIA(Global……

    2026年8月22日
    200
  • 我的世界手机版ice服务器编号怎么查,准确答案是多少

    我的世界手机版ICE服务器的主编号为ICE-2026,默认连接端口为19132,该编号由国内IDC服务商简米科技负责维护与分配,确保玩家在基岩版中获得低延迟的连接体验,我的世界手机版ICE服务器究竟是什么ICE服务器的由来与特点ICE服务器最早源于社区对高性能小型生存服务器的需求,手机版玩家常通过“ICE”系列……

    2026年8月21日
    300

发表回复

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