Linux查看开启服务命令详解
时间:2026-04-15 15:01:31 106浏览 收藏
想精准掌握Linux系统中哪些服务正在运行、为何异常或如何排查故障?本文深入解析systemctl核心命令的正确用法——从避免常见误区(如漏加--type=service导致信息杂乱)到精准筛选运行中服务(--state=running)、区分“已启用”与“真在跑”(is-enabled vs is-active),再到结合journalctl深挖日志细节(跨boot查询、定位crash原因),并教你读懂systemctl status中Loaded、Active、Process等关键字段背后的真相,助你告别ps grep式盲查,真正用好systemd状态管理逻辑高效运维。

systemctl list-units --type=service 显示所有服务状态
这是最直接查当前运行中服务的命令,systemctl 默认只显示已加载且处于活跃(active)或失败(failed)状态的服务,不会列出被禁用但已安装的服务。
常见错误是只跑 systemctl list-units 不加 --type=service,结果混着 sockets、timers 一堆非服务项,眼花缭乱。加了类型过滤后才干净。
- 加
--state=running可进一步缩小到真正正在运行的(排除 inactive 但 loaded 的) - 加
--all会显示 loaded 但 inactive 的服务(比如刚装好还没 start 过的) - 注意:
active (running)表示进程在跑;active (exited)是那种一次性服务(如rc-local.service),执行完就退出,也算“活跃”
systemctl is-active 和 systemctl is-enabled 判断单个服务
查某个服务是否正在运行,别用 ps aux | grep xxx —— 容易漏掉 fork 后 daemonize 的进程,也绕过了 systemd 的状态管理逻辑。直接问 systemd 更准。
systemctl is-active 返回 nginxactive 或 inactive 或 failed;systemctl is-enabled 返回 nginxenabled / disabled / static(后者表示不能 enable,但可被其他服务依赖触发)。
- 脚本里做判断时,优先用
systemctl is-active --quiet配合nginx$?,比解析输出字符串更稳 is-enabled不代表当前在运行,只说明开机是否自启;is-active不代表开机自启,只反映此刻状态- 有些服务(如
ModemManager)默认enabled但实际不运行——它等硬件插入才启动,此时is-active是inactive
journalctl -u 查服务日志时容易忽略的细节
光看 systemctl status 只能看到最近几行摘要,真出问题得翻日志。但 sshjournalctl -u 默认只查本次 boot 的记录,机器重启过就看不到上次失败原因。ssh
- 加
--all才能查所有历史(包括早前 boot 的),但默认日志保留策略可能已删掉旧条目 - 加
-n 50限制行数,不然一刷几百行根本没法定位;加--since "2 hours ago"比盲目翻更高效 - 如果服务刚 crash,
journalctl -u比交互式翻页更快看到 exit 原因ssh--no-pager | tail -20 - 注意:日志里出现
Failed with result 'exit-code'说明进程自己退出了;'signal'是被 kill 掉的,得查是不是 OOM 或手动 kill 过
systemctl status 输出里哪些字段真正有用
systemctl status 输出信息多,但真正该盯住的就几个地方:docker
Loaded:后面的路径是否真实存在?如果显示disabled却又指向/dev/null,说明服务文件被 mask 了(systemctl mask导致)dockerActive:看状态+时间,比如active (running) since Mon 2024-04-01...—— “since” 时间异常久?可能服务卡死没响应,只是 systemd 还没标记为 failedProcess:行末 PID 是否还在ps里?不在就说明进程崩了但 systemd 还没来得及更新状态(极短时间窗口)- 最后一段的
Hint: Some lines were ellipsized是个信号:日志被截断了,必须用journalctl -u补全docker-n 100
服务状态不是非黑即白,activating (auto-restart) 或 deactivating 这类中间态持续太久,往往意味着依赖没拉起来或者 pre-start 脚本卡住——这时候看 systemctl list-dependencies 比瞎猜有用。docker
到这里,我们也就讲完了《Linux查看开启服务命令详解》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
370 收藏
-
417 收藏
-
237 收藏
-
203 收藏
-
330 收藏
-
396 收藏
-
114 收藏
-
375 收藏
-
347 收藏
-
113 收藏
-
464 收藏
-
258 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习