journalctl 单元记录在单元仍在运行时停止

Dan*_*ull 1 logging systemctl systemd-journald

似乎在上面找不到任何东西,我也是一个奇怪的人。

我有一个非常频繁地插入数据库记录的 python 程序,它仍在这样做,所以我知道该程序仍在运行。

我将程序设置为 systemctl 中的服务单元,并记录到 journalctl。

几个月来日志一直很好,但今天 1 点钟停止将日志添加到该单元的日志数据中。

这只是内存问题吗?我不知道为什么,但我认为 journalctl 会处理这个问题。

Dan*_*ull 5

是的,这是一个内存问题,通过运行找到 journalctl 存储日志的位置来解决

man systemd-journald
Run Code Online (Sandbox Code Playgroud)

然后我想检查系统上的剩余内存,所以我运行:

df
Run Code Online (Sandbox Code Playgroud)

这告诉我日志存储目录的顶级目录已 100% 满。所以没有更多的空间来存储。

我想我有一个旧版本的 journalctl 并且没有 --rotate 标志,这意味着很难删除未归档的日志。我能够通过以下方式释放 10% 的空间:

journalctl --vacuum-time=1d
Run Code Online (Sandbox Code Playgroud)

然后我跑了:

sudo systemctl restart systemd-journald
Run Code Online (Sandbox Code Playgroud)

这将重新启动日志服务,但这并没有让我的日志工作,所以我然后重新启动了我自己的服务:

systemctl restart service.name
Run Code Online (Sandbox Code Playgroud)

然后我的日志又开始显示了!