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 | 7小时前 |
- coredumpctl 怎样按 PID 导出转储
- 478浏览 收藏
-
- 文章 · linux | 7小时前 |
- systemd.service notify 怎样处理 READY=1
- 451浏览 收藏
-
- 文章 · linux | 7小时前 |
- systemd.exec 怎样限制文件系统访问
- 294浏览 收藏
-
- 文章 · linux | 7小时前 |
- Linux nsenter 怎么同时进入目标进程的 network 和 mount namespace
- 263浏览 收藏
-
- 文章 · linux | 7小时前 |
- epoll EPOLLONESHOT 怎样正确重新武装事件
- 279浏览 收藏
-
- 文章 · linux | 7小时前 |
- Linux cgroup v2 memory.stat 怎样区分匿名页和文件页
- 405浏览 收藏
-
- 文章 · linux | 7小时前 |
- io_uring SQPOLL 怎样理解轮询行为
- 200浏览 收藏
-
- 文章 · linux | 7小时前 |
- journalctl cursor 怎样断点读取日志
- 203浏览 收藏
-
- 文章 · linux | 7小时前 |
- resource-control 怎样限制服务内存
- 425浏览 收藏
-
- 文章 · linux | 7小时前 | linux运维 · 故障排查 · Linux systemd 安全加固 systemd-analyze 服务沙箱
- systemd-analyze security 怎样查看沙箱暴露面
- 487浏览 收藏
-
- 文章 · linux | 8小时前 |
- systemd-path 怎么查询当前用户的配置目录
- 442浏览 收藏
-
- 文章 · linux | 8小时前 |
- systemd.socket 怎样继承监听套接字
- 128浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 689次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 703次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 764次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 728次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 563次使用
-
- 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浏览

