最近碰到一个凝思的服务器 Linx GNU/Linux 6.0.80 (jessie) ,使用 journalctl 命令查看服务日志的时候没有任何输出。

journalctl -xefu <服务名>

看不到任何日志输出。

这通常说明 systemd-journald 的日志功能没有正确开启或日志未持久化。下面我们逐步排查并启用系统日志。


🧩 一、确认 systemd 日志服务是否在运行

systemctl status systemd-journald

输出中应看到:

Active: active (running)

如果不是运行状态,请启动并设置开机自启:

systemctl start systemd-journald
systemctl enable systemd-journald

🧩 二、检查是否启用了持久化日志存储

默认情况下,某些国产系统(包括 Linx)为了节省空间,只在内存中保存日志,重启或某些配置下日志会消失。

查看日志存储路径:

ls -ld /var/log/journal
  • 如果 不存在该目录,则 journald 只在内存中记录日志(/run/log/journal),
    执行:

    mkdir -p /var/log/journal
    systemd-tmpfiles --create --prefix /var/log/journal
    systemctl restart systemd-journald

🧩 三、检查 journald 配置文件

打开配置文件:

vim /etc/systemd/journald.conf

确保以下配置项:

[Journal]
Storage=persistent
ForwardToSyslog=yes

修改后执行:

systemctl restart systemd-journald