当前位置:首页 > 文章列表 > 文章 > linux > Linux journalctl 如何只看某 systemd 服务本次启动日志

Linux journalctl 如何只看某 systemd 服务本次启动日志

来源:17golang原创 2026-09-10 13:47:37 0浏览 收藏

如果只想查看某个 systemd 服务在当前这次系统启动里的日志,直接把服务过滤和启动过滤放在同一条命令中:

# -u 限定服务,-b 限定当前系统启动,--no-pager 便于复制完整输出
journalctl -u demo.service -b --no-pager

demo.service 换成实际 unit 名即可。这里的 -u 对应服务边界,-b 对应系统启动边界,两者是交集关系,不是“先看服务、再凭肉眼挑时间”。

官方资料入口:https://www.freedesktop.org/software/systemd/

要点速览
  • 最小写法是 journalctl -u 服务名 -b --no-pager
  • 空结果优先检查 unit 全名、读取权限和是否为用户服务。
  • 本次系统启动不等于服务最近一次启动;需要历史批次时先看 --list-boots

先确认 unit 名,再组合 -u 与 -b

服务页面上显示的进程名、软件名和 systemd unit 名可能不同。先用状态命令确认精确名称:

# 显示 unit 的实际状态;不要把进程名直接替换成服务名
systemctl status demo.service --no-pager

# 只查看当前系统启动中该服务的日志
journalctl -u demo.service -b --no-pager -o short-iso

-u--unit= 的短选项,会匹配服务相关的 systemd 日志字段;-b 不带参数时表示当前 boot。两个条件同时存在时,journalctl 只保留同时满足服务和启动批次的记录。-o short-iso 让时间格式更适合跨机器比较,若只想看最近 80 行,可以加 -n 80

journalctl 使用 -u 服务过滤和 -b 启动过滤连接 _SYSTEMD_UNIT、_BOOT_ID 与 systemd-journald 的静态边界图
图1:把 -u 的服务边界和 -b 的启动边界叠加起来,理解为什么结果只保留当前服务本次启动的日志。

本次启动不等于最近一次服务启动

一台机器可能经历多次 boot,同一个服务也可能在一次 boot 中被手动重启多次。因此“当前 boot 的服务日志”仍可能包含本次系统启动后的多次服务实例。先查看系统启动列表:

# 列出日志库能够识别的系统启动批次,0 通常代表当前批次
journalctl --list-boots --no-pager

# 只查看目标服务在当前 boot 的最近 30 行
journalctl -u demo.service -b -n 30 --no-pager

如果要看上一次系统启动,可使用 -b -1;这改变的是系统 boot 边界,不是服务名。较新的 systemd 还提供 --list-invocations,可用于观察 unit 的服务实例边界:

# 查看该 unit 的 invocation 记录;先确认本机 systemd 支持此选项
journalctl -u demo.service --list-invocations --no-pager

# 将当前 boot 内的日志再收窄到一个时间窗口
journalctl -u demo.service -b --since "10 minutes ago" --until now --no-pager

排障时先决定要回答哪个问题:机器重启后的服务表现,用 -b;某次服务重启后的表现,用 invocation 或明确的 --since/--until。不要用“最新几行”代替边界选择。

journalctl 的 --list-boots、--list-invocations、BOOT_ID、INVOCATION_ID 与时间范围静态关系图
图2:启动批次、服务实例和时间范围是三种不同边界,比较历史日志前应先确认自己要筛选哪一种。

空结果时按四层检查

现象优先检查处理方式
提示找不到 unit 或没有记录unit 名systemctl list-units --type=servicesystemctl status 确认完整名称。
普通用户看不到系统服务日志读取权限先用 sudo journalctl -u demo.service -b 对比;长期使用可加入系统日志读取组。
服务是用户级 unit日志范围使用 journalctl --user -u app.service -b,不要和系统级 unit 混查。
重启后历史日志消失journald 保存策略检查日志是否持久化;当前日志库没有保存的记录,筛选参数无法补回。

还有一个容易忽视的边界:journalctl 读取的是调用者有权访问的 journal。命令为空不一定代表服务没有输出,也可能只是普通用户看不到系统级日志。先确认权限,再判断服务是否真的没有写日志。

实用命令速查与复查动作

  • 实时跟踪当前 boot 的服务:journalctl -u demo.service -b -f
  • 只看错误级别及以上:journalctl -u demo.service -b -p err
  • 导出便于复制的纯文本:加上 --no-pager -o short-iso,避免分页器截断上下文。
  • 对比上一轮启动:先执行 journalctl --list-boots,再把 -b -1 换入同一条服务过滤命令。

最后复查时,至少确认三件事:unit 名确实对应目标服务;-b 是否表达了你要的系统启动批次;命令执行用户是否有权读取该批次的 journal。这样得到的日志范围才足以支撑后续的重启、配置或依赖排查。

常见问题

为什么 journalctl -u demo 有时也能看到日志?

systemd 可能把不带后缀的名称解析为 unit,但排障记录建议使用完整的 demo.service,可读性和复查一致性更好。

-b-b -1 有什么区别?

-b 选择当前系统启动,-b -1 选择前一个启动批次。它们都可以和 -u 同时使用。

为什么服务刚启动却查不到日志?

先确认 unit 名和权限,再检查服务是否把日志写入其他文件、是否使用了用户级 unit,以及 journald 是否正在接收该进程的输出。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
Go io.LimitReader 包装请求体后为什么拿不到完整错误信息Go io.LimitReader 包装请求体后为什么拿不到完整错误信息
上一篇
Go io.LimitReader 包装请求体后为什么拿不到完整错误信息
Go 如何设计 channel 关闭责任避免发送方 panic
下一篇
Go 如何设计 channel 关闭责任避免发送方 panic
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    62次使用
  • SuperCLUE中文大模型评测基准:功能、能力维度与应用指南
    SuperCLUE
    SuperCLUE是权威的中文大语言模型综合评测基准,涵盖语言理解、知识应用、AI Agent智能体及安全性等12项核心能力。通过多轮对话与客观测试,定期发布榜单与技术报告,为模型研发、优化及行业选型提供科学依据。
    222次使用
  • C-Eval中文评测基准:大语言模型多学科能力评估指南
    C-Eval
    深入了解C-Eval中文评估套件,涵盖52个学科与4级难度。本文详解其功能特点、Zero-shot/Few-shot使用方法及代码示例,助您全面评测LLM中文理解与泛化能力。
    147次使用
  • AI Prompt Library:免费AI提示词库,助力ChatGPT高效创作与营销
    AI Prompt Library
    探索AI Prompt Library免费资源库,涵盖营销、写作及多场景AI提示词。兼容ChatGPT、Claude等工具,一键复制优化输出,提升工作效率。
    79次使用
  • Generrated:DALL·E 2/3 AI绘画提示词灵感库与图像对比平台
    Generrated
    Generrated汇集9300+张DALL·E生成图像及对应提示词,支持查看完整图集、对比DALL·E 2与3版本差异,是AI绘图新手学习Prompt设计与获取创作灵感的实用工具。
    58次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码