Linux journalctl 如何只看某 systemd 服务本次启动日志
如果只想查看某个 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。

本次启动不等于最近一次服务启动
一台机器可能经历多次 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。不要用“最新几行”代替边界选择。

空结果时按四层检查
| 现象 | 优先检查 | 处理方式 |
|---|---|---|
| 提示找不到 unit 或没有记录 | unit 名 | 用 systemctl list-units --type=service 或 systemctl 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 是否正在接收该进程的输出。
Go io.LimitReader 包装请求体后为什么拿不到完整错误信息
- 上一篇
- Go io.LimitReader 包装请求体后为什么拿不到完整错误信息
- 下一篇
- Go 如何设计 channel 关闭责任避免发送方 panic
-
- 文章 · linux | 2小时前 |
- Linux perf stat 如何只统计某个进程的硬件事件
- 185浏览 收藏
-
- 文章 · linux | 4小时前 |
- Linux xargs 处理文件名空格时为什么要配合 null 分隔
- 160浏览 收藏
-
- 文章 · linux | 4小时前 |
- Linux tar 排除多个目录时怎么避免通配符误匹配
- 119浏览 收藏
-
- 文章 · linux | 10小时前 | Linux · 文件系统 · 挂载 · Linux 软链接 mount namespace mount --bind
- Linux mount bind 和软链接在文件树隔离上有什么区别
- 142浏览 收藏
-
- 文章 · linux | 1天前 | Linux · 防火墙 · NFTables · Linux防火墙 nftables set 端口集合
- Linux nftables set 怎么按集合匹配多个端口
- 242浏览 收藏
-
- 文章 · linux | 1天前 | 容器 · Linux · 进程隔离 · Linux NameSpace PID namespace procfs
- Linux namespace 中为什么看不到宿主机的进程
- 412浏览 收藏
-
- 文章 · linux | 1天前 | Linux · 内存限制 · cgroup-v2 · 资源隔离 · Linux cgroup memory.current memory.max cgroup-v2
- Linux cgroup v2 memory.current 和 memory.max 怎么配合
- 280浏览 收藏
-
- 文章 · linux | 1天前 | Linux · systemd · 日志排查 · journalctl · Linux systemd journalctl journald 启动日志
- Linux journalctl 按服务和启动轮次筛选日志怎么写
- 481浏览 收藏
-
- 文章 · linux | 1天前 | Linux · 环境变量 · systemd · 服务管理 · Linux systemd Environment EnvironmentFile
- Linux systemd service 环境变量怎么只对单个服务生效
- 283浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 62次使用
-
- SuperCLUE
- SuperCLUE是权威的中文大语言模型综合评测基准,涵盖语言理解、知识应用、AI Agent智能体及安全性等12项核心能力。通过多轮对话与客观测试,定期发布榜单与技术报告,为模型研发、优化及行业选型提供科学依据。
- 222次使用
-
- C-Eval
- 深入了解C-Eval中文评估套件,涵盖52个学科与4级难度。本文详解其功能特点、Zero-shot/Few-shot使用方法及代码示例,助您全面评测LLM中文理解与泛化能力。
- 147次使用
-
- AI Prompt Library
- 探索AI Prompt Library免费资源库,涵盖营销、写作及多场景AI提示词。兼容ChatGPT、Claude等工具,一键复制优化输出,提升工作效率。
- 79次使用
-
- Generrated
- Generrated汇集9300+张DALL·E生成图像及对应提示词,支持查看完整图集、对比DALL·E 2与3版本差异,是AI绘图新手学习Prompt设计与获取创作灵感的实用工具。
- 58次使用
-
- golang xorm 自定义日志记录器之使用zap实现日志输出、切割日志(最新)
- 2023-02-24 432浏览
-
- Go语言常用的打log方式详解
- 2023-02-24 485浏览
-
- Go常用技能日志log包创建使用示例
- 2023-01-28 105浏览
-
- Go学习笔记之Zap日志的使用
- 2023-01-19 360浏览
-
- Go实现整合Logrus实现日志打印
- 2023-01-07 229浏览

