From b20db589f6ba02a48a8a1cf2ab2e08d71e81c7c5 Mon Sep 17 00:00:00 2001 From: Mel Date: Fri, 16 Jan 2026 18:11:12 +0100 Subject: Enable earlyoom to prevent system hanging Signed-off-by: Mel --- modules/common.nix | 1 + modules/oom.nix | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 modules/oom.nix (limited to 'modules') diff --git a/modules/common.nix b/modules/common.nix index e36d4e9..00b87bb 100644 --- a/modules/common.nix +++ b/modules/common.nix @@ -13,6 +13,7 @@ ./vim.nix ./tmux.nix ./nix-ld.nix + ./oom.nix ]; services.envfs.enable = true; diff --git a/modules/oom.nix b/modules/oom.nix new file mode 100644 index 0000000..b05052a --- /dev/null +++ b/modules/oom.nix @@ -0,0 +1,28 @@ +# module for controlling out-of-memory states for desktop linux machines, +# to avoid hanging the full system including the shell, in favor of +# sending out oom signals before it comes to that with the earlyoom service. +{ ... }: + +{ + services = { + # TODO: i believe systemd-oomd could also be used to prevent system hanging, + # and i should investigate it, to avoid running 2 userspace oom killers. + # earlyoom is known for the small amount of configuration needed to prevent the + # system from hanging for half an hour, and we can keep it simple for now. + earlyoom = { + enable = true; + + freeMemThreshold = 10; + freeMemKillThreshold = 5; + + # requires systembus-notify. + # i wish libnotify would support sending out + # notifications to all users through the system + # session bus natively... + # see: https://gitlab.gnome.org/GNOME/libnotify/-/issues/9 + enableNotifications = true; + }; + + systembus-notify.enable = true; + }; +} -- cgit 1.4.1