0

0

Linux 服务无日志时的排查思路

舞夢輝影

舞夢輝影

发布时间:2026-02-11 17:10:02

|

481人浏览过

|

来源于php中文网

原创

服务无日志主因是默认走journald而非落盘,需查systemctl status、journalctl输出及service文件中StandardOutput/StandardError配置,必要时修改journald.conf或添加StandardOutput=append:/var/log/.log并reload。

linux 服务无日志时的排查思路

服务启动了但 /var/log/ 下没日志文件

不是日志被删了,而是服务压根没配置写日志,或者日志被重定向到其他地方。很多 systemd 服务默认不落盘,只走 journald

  • 先查 systemctl status ,看最后一行有没有类似 journalctl -u 的提示
  • 运行 journalctl -u --since "1 hour ago" 看实时日志输出,确认服务是否真在跑、有没有报错
  • 检查服务单元文件:systemctl cat ,重点看 StandardOutputStandardError 字段——如果设成 journalnull,就不会生成传统日志文件
  • 若想强制落盘,需在 service 文件里加 StandardOutput=append:/var/log/.log 并 reload:先 systemctl daemon-reload,再 systemctl restart

journalctl 查不到最近的日志

常见于系统重启后日志被轮转或限制了保留策略,不是命令用错了。

  • 默认 journald 只存内存+有限磁盘空间(通常 10% 或 4G),老日志会被自动清理。查当前配额:journalctl --disk-usage
  • 看保留策略:cat /etc/systemd/journald.conf | grep -E "^(Storage|SystemMaxUse|SystemMaxFileSize)";若 Storage=volatile,那所有日志都在 /run/log/journal/,重启即丢
  • 临时扩大空间:改 SystemMaxUse=500M 后执行 systemctl kill --signal=SIGUSR1 --kill-who=main systemd-journald 触发重载(不用 restart)
  • 注意:--since 时间格式要严格,"2024-05-20 14:30:00""2 hours ago" 更可靠,后者依赖系统时钟精度

服务进程在跑,但 journalctl 和文件日志都空

大概率是进程自己接管了 stdout/stderr,又没做任何输出,或者输出被重定向到某个没权限写的路径。

MediSearch
MediSearch

Medisearch是一个AI驱动的医疗健康搜索引擎,旨在根据可信来源提供医学问题的直接答案

下载
  • ps auxf | grep 找主进程 PID,再查它的文件描述符:ls -l /proc//fd/{1,2} —— 如果指向 /dev/null 或一个不存在的路径,就解释得通
  • 有些程序(如 Node.js 的 pm2、Go 的二进制)默认静默,需显式加 --log 或设置环境变量如 LOG_LEVEL=debug
  • 检查服务是否以非 root 用户运行,而日志路径(比如 /var/log/myapp/)属主是 root 且无写权限 —— journalctl 不报权限错,但写文件会静默失败
  • 抓一把实时输出:strace -p -e write -s 200 2>&1 | grep -E "(write|\"[^\"]{5,}\")",看它到底往哪写、写了啥

想让日志同时进 journald 和文件,但内容不一致

不是同步问题,是输出流被复制时发生了缓冲或截断 —— 尤其是短生命周期进程或带颜色输出的命令。

  • 避免用 tee 简单分流,它无法处理行缓冲和全缓冲混用的情况。正确做法是在服务配置中分别指定:StandardOutput=journal + StandardError=journal,再用 systemd-cat 做桥接(见下条)
  • 若必须落地文件,用 ExecStartPre=-/bin/mkdir -p /var/log/ 确保路径存在,再用 ExecStart=/usr/bin/stdbuf -oL -eL /path/to/binary 2>&1 | /usr/bin/systemd-cat -t
  • stdbuf -oL -eL 强制行缓冲,防止日志卡在缓冲区不吐;systemd-cat 保证每行都进 journal,且能被 journalctl -t 过滤
  • 注意:systemd-cat 不会自动创建日志文件,它只负责把标准输入转发给 journald —— 落盘还得靠 systemd-journald 自身的持久化配置
事情说清了就结束。真正卡住人的,往往不是“怎么查”,而是默认行为和权限细节——比如 Storage=auto 在某些发行版里实际等价于 volatile,或者 StandardOutput=journal 时连 printf 都可能因缓冲不刷新而消失。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

243

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

665

2024.03.01

printf用法大全
printf用法大全

php中文网为大家提供printf用法大全,以及其他printf函数的相关文章、相关下载资源以及各种相关课程,供大家免费下载体验。

76

2023.06.20

fprintf和printf的区别
fprintf和printf的区别

fprintf和printf的区别在于输出的目标不同,printf输出到标准输出流,而fprintf输出到指定的文件流。根据需要选择合适的函数来进行输出操作。更多关于fprintf和printf的相关文章详情请看本专题下面的文章。php中文网欢迎大家前来学习。

294

2023.11.28

c++中volatile关键字的作用
c++中volatile关键字的作用

本专题整合了c++中volatile关键字的相关内容,阅读专题下面的文章了解更多详细内容。

69

2025.10.23

append用法
append用法

append是一个常用的命令行工具,用于将一个文件的内容追加到另一个文件的末尾。想了解更多append用法相关内容,可以阅读本专题下面的文章。

346

2023.10.25

python中append的用法
python中append的用法

在Python中,append()是列表对象的一个方法,用于向列表末尾添加一个元素。想了解更多append的更多内容,可以阅读本专题下面的文章。

1077

2023.11.14

python中append的含义
python中append的含义

本专题整合了python中append的相关内容,阅读专题下面的文章了解更多详细内容。

178

2025.09.12

Rust异步编程与Tokio运行时实战
Rust异步编程与Tokio运行时实战

本专题聚焦 Rust 语言的异步编程模型,深入讲解 async/await 机制与 Tokio 运行时的核心原理。内容包括异步任务调度、Future 执行模型、并发安全、网络 IO 编程以及高并发场景下的性能优化。通过实战示例,帮助开发者使用 Rust 构建高性能、低延迟的后端服务与网络应用。

1

2026.02.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.9万人学习

Git 教程
Git 教程

共21课时 | 3.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号