summaryrefslogtreecommitdiff
path: root/src/login
diff options
context:
space:
mode:
authorMark Laws <mdl@60hz.org>2022-11-24 14:56:29 +0900
committerMark Laws <mdl@60hz.org>2022-11-24 19:41:36 +0900
commit98b6c94b577205d31b019286c2a84cc9af244ea0 (patch)
tree687f08891e17919f63a7aee76639e697f868af61 /src/login
parent5fa098357e0ea9f05b00ed5b04a36ef9f64037db (diff)
downloadsystemd-98b6c94b577205d31b019286c2a84cc9af244ea0.tar.gz
systemd: Default to OOMPolicy=continue for login session scopes
If the kernel OOM kills a process under a login session scope, we don't want to kill the user's other processes for no good reason.
Diffstat (limited to 'src/login')
-rw-r--r--src/login/logind-dbus.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index 86a5decf3f..2ab26b9c6d 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -3970,6 +3970,12 @@ int manager_start_scope(
if (r < 0)
return r;
+ /* For login session scopes, if a process is OOM killed by the kernel, *don't* terminate the rest of
+ the scope */
+ r = sd_bus_message_append(m, "(sv)", "OOMPolicy", "s", "continue");
+ if (r < 0)
+ return r;
+
/* disable TasksMax= for the session scope, rely on the slice setting for it */
r = sd_bus_message_append(m, "(sv)", "TasksMax", "t", UINT64_MAX);
if (r < 0)