1 diff --git a/src/main.c b/src/main.c
2 index ed317b4..6b56a86 100644
5 @@ -76,6 +76,7 @@ static bool arg_sysv_console = true;
6 static bool arg_mount_auto = true;
7 static bool arg_swap_auto = true;
8 static char **arg_default_controllers = NULL;
9 +static char *arg_default_oom_score_adj = NULL;
10 static char ***arg_join_controllers = NULL;
11 static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL;
12 static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT;
13 @@ -656,6 +657,7 @@ static int parse_config_file(void) {
14 { "Manager", "MountAuto", config_parse_bool, 0, &arg_mount_auto },
15 { "Manager", "SwapAuto", config_parse_bool, 0, &arg_swap_auto },
16 { "Manager", "DefaultControllers", config_parse_strv, 0, &arg_default_controllers },
17 + { "Manager", "DefaultOOMScoreAdj", config_parse_string, 0, &arg_default_oom_score_adj },
18 { "Manager", "DefaultStandardOutput", config_parse_output, 0, &arg_default_std_output },
19 { "Manager", "DefaultStandardError", config_parse_output, 0, &arg_default_std_error },
20 { "Manager", "JoinControllers", config_parse_join_controllers, 0, &arg_join_controllers },
21 @@ -1260,6 +1262,13 @@ int main(int argc, char *argv[]) {
23 if (parse_config_file() < 0)
26 + if (arg_default_oom_score_adj) {
27 + if (write_one_line_file("/proc/self/oom_score_adj", arg_default_oom_score_adj) < 0) {
28 + log_error("Failed to set default oom_score_adj: %s", arg_default_oom_score_adj);
33 if (arg_running_as == MANAGER_SYSTEM)
34 if (parse_proc_cmdline() < 0)
35 diff --git a/src/system.conf b/src/system.conf
36 index 33d09bc..c24a606 100644
43 +DefaultOOMScoreAdj=-1000
46 #DefaultControllers=cpu
47 diff --git a/src/user.conf b/src/user.conf
48 index 9508a02..70c5540 100644
52 # See systemd.conf(5) for details
55 +DefaultOOMScoreAdj=-1000