最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何通过 Journalctl 查看系统进程的运行状态流
时间:2026-07-26 08:35:05 编辑:袖梨 来源:一聚教程网
可通过journalctl实时跟踪进程生命周期,需结合-u指定服务单元、过滤优先级与时间,并识别Started/Starting/Stopped/Stopping/Failed等关键词及_PID/_COMM等字段精确定位事件。
可以通过 journalctl 实时跟踪进程的启动、运行、退出等状态变化,关键在于结合服务单元名、日志优先级和时间过滤,精准捕获 systemd 管理的进程生命周期事件。
按服务单元名实时监控进程状态
systemd 服务的日志默认以服务单元名为标识。使用 -u 选项可聚焦特定服务:
-
journalctl -u sshd.service -f:持续输出 sshd 的日志,包括启动成功、监听端口、子进程派生、异常退出等信息 -
journalctl -u nginx.service --since "2 minutes ago":查看最近两分钟内 nginx 的启停与重载记录 - 若服务名不确定,可用
systemctl list-units --type=service --state=running先确认活跃服务列表
识别关键状态事件的日志关键词
进程状态变化通常由 systemd 自动记录,关注以下典型日志行即可判断运行状态:
-
Started:服务已成功启动(如
Started OpenSSH server daemon) - Starting:服务正在启动中(常伴随 ExecStart 命令执行)
- Stopped 或 Stopping:服务已终止或正在关闭
-
Failed:启动失败,通常后跟原因(如
Failed with result 'exit-code') - 含
main process exited或code=exited, status=1/FAILURE行,表示主进程非正常退出
结合 PID 和进程字段精确定位
当需区分同一服务的多个实例或排查具体进程行为时,可利用日志中的进程元数据:
-
journalctl _PID=12345:按进程 ID 过滤该进程及其子进程产生的所有日志 -
journalctl _COMM=nginx:匹配命令名(不带路径),适合快速定位二进制名一致的进程 -
journalctl _SYSTEMD_UNIT=myapp.service:比-u更底层,适用于单元名被动态生成的场景(如模板实例[email protected])
过滤并高亮状态变更行
为快速识别状态流转,可组合 grep 与颜色标记:
journalctl -u myapp.service -n 100 | grep --color=always -E "(Started|Starting|Stopped|Stopping|Failed|exited)"- 加
--no-hostname和--output=short-iso可减少干扰信息,突出时间与状态关键词 - 用
journalctl -u myapp.service -o json | jq 'select(.MESSAGE | contains("Started") or .PRIORITY == "3")'可结构化提取错误与启动事件
相关文章
- 三角洲行动仿星器控制室位于何处 07-28
- 三角洲行动压水堆服务器室在何处 07-28
- 三角洲行动铁路通道何处 07-28
- 三角洲行动托卡马克数据中心在哪 07-28
- 三角洲行动后处理厂机房何在 07-28
- 梦幻西游女魃墓69级装备搭配 07-28