应用程序 OOM 导致 niri 被 kill 处理方案
记录一下。
TLDR
systemctl enable systemd-oomd.service
systemctl start systemd-oomd.service
问题
复现方法:运行一个会 OOM 的程序
- 编写了一个反复
a=a..a
的 lua 脚本。 - niri-session 进入 niri (我通过 greetd 启动 niri 会话)
- 在 niri 中打开终端(快捷键内容:
spawn "terminal"
),执行该脚本 -
不久后内存用尽,触发 OOM,整个 niri 被 kill,被退至登录界面。
- 随即发现使用 systemd-run –user –scope 来启动应用可以避免这一情况。
询问
在 niri 群里问了一下是不是必须要用 systemd-run 来避免整个 niri 会话被杀
YaLTeR:
niri already does it specifically for that purpose and it works. So idk check your systemd-oomd
systemctl status systemd-oomd
我的显示为 disabled ,同时预设也是 disabled。
systemctl enable systemd-oomd.service
systemctl start systemd-oomd.service
启用后就好了。
Written on September 1, 2025