必须启用journalctl -f或dmesg -w实现实时日志追踪:journalctl -f跟踪全部服务日志,加-p err可过滤错误,-u cups.service -f锁定特定服务;dmesg -w监控内核事件,-t -w -l支持时间戳与高亮;日志需重定向至文件并用kill终止进程防止磁盘占满。

当系统出现偶发性卡顿、服务无响应或界面闪退,需要持续捕获运行时日志用于复现分析时,必须启用系统日志的实时追踪机制。仅查看历史日志无法捕捉瞬时异常,而默认状态下journalctl和dmesg均不自动开启长周期监听。
启用systemd日志实时追踪
journalctl -f 是最常用且最可靠的实时追踪方式,它会持续输出新生成的日志条目,直到手动中断。
在终端中执行:sudo journalctl -f
该命令默认跟踪全部服务日志,滚动速度较快;若只想关注关键错误,追加 -p err 参数可大幅减少干扰信息:sudo journalctl -f -p err
若已知问题与某项服务强相关(如打印异常),直接锁定该服务单元:sudo journalctl -u cups.service -f。注意:-u 后必须带 .service 后缀,漏写会导致命令无输出。
启用内核日志实时追踪
当怀疑是硬件驱动崩溃、内存故障或USB设备脱管导致的底层死机,需同步监控内核环缓冲区的新消息。
方法一:执行 sudo dmesg -w,该命令等效于 dmesg --follow,专为内核日志设计,比 journalctl -f 更轻量、启动更快。
方法二:若需同时看到时间戳和颜色高亮,使用 sudo dmesg -T -w -L。注意:-T 和 -w 必须共存才生效,单独用 -T 仅为一次性快照。
⚠️ 提醒:dmesg -w 不会显示开机前的 BIOS/UEFI 阶段日志,那些内容已固化在启动初期的环形缓冲区中,只能通过 dmesg(无 -w)回溯。
将实时日志自动保存到文件
手动复制终端内容易遗漏或格式错乱,应让系统自动落盘。
第一步:创建专用日志目录并进入:mkdir -p ~/log_trace && cd ~/log_trace
第二步:启动后台日志捕获进程,将 journalctl 实时输出追加写入 trace_journald.log:sudo journalctl -f >> trace_journald.log 2>&1 &
第三步:同理捕获内核日志:sudo dmesg -w >> trace_dmesg.log 2>&1 &
第四步:记录当前进程号以便后续停止:jobs -l。返回类似 “[1]+ 12345 Running sudo journalctl -f >> … &” 的结果,其中 12345 即为 PID。
第五步:当完成复现后,在终端输入 kill 12345(替换为实际PID)终止对应追踪进程。不手动 kill 会导致日志文件持续增长并占用磁盘空间。











