2023-11-07 11:29:40 +00:00
|
|
|
From 53464ce69ec5202b9abfb35ddbd58c61e2e0ba18 Mon Sep 17 00:00:00 2001
|
2023-05-09 05:39:14 +00:00
|
|
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
|
|
Date: Tue, 13 Dec 2022 15:26:58 +0100
|
|
|
|
Subject: [PATCH] core,man: add missing integration of OOMPolicy= in scopes
|
|
|
|
|
|
|
|
Fixup for 5fa098357e0ea9f05b00ed5b04a36ef9f64037db.
|
|
|
|
|
|
|
|
(cherry picked from commit d5a1657d5a78e9a101fa91e60921bed54ec162b8)
|
|
|
|
|
2023-11-07 11:29:40 +00:00
|
|
|
Resolves: #2176918
|
2023-05-09 05:39:14 +00:00
|
|
|
---
|
|
|
|
man/systemd.scope.xml | 2 ++
|
|
|
|
man/systemd.service.xml | 22 ++++++++++------------
|
|
|
|
src/core/load-fragment-gperf.gperf.in | 1 +
|
|
|
|
3 files changed, 13 insertions(+), 12 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/man/systemd.scope.xml b/man/systemd.scope.xml
|
|
|
|
index 17d2700069..95969bf097 100644
|
|
|
|
--- a/man/systemd.scope.xml
|
|
|
|
+++ b/man/systemd.scope.xml
|
|
|
|
@@ -105,6 +105,8 @@
|
|
|
|
of scope units are the following:</para>
|
|
|
|
|
|
|
|
<variablelist class='unit-directives'>
|
|
|
|
+ <xi:include href="systemd.service.xml" xpointer="oom-policy" />
|
|
|
|
+
|
|
|
|
<varlistentry>
|
|
|
|
<term><varname>RuntimeMaxSec=</varname></term>
|
|
|
|
|
|
|
|
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
|
|
|
|
index cae520ceab..1c9e59f722 100644
|
|
|
|
--- a/man/systemd.service.xml
|
|
|
|
+++ b/man/systemd.service.xml
|
|
|
|
@@ -1120,7 +1120,7 @@
|
|
|
|
above.</para></listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
- <varlistentry>
|
|
|
|
+ <varlistentry id='oom-policy'>
|
|
|
|
<term><varname>OOMPolicy=</varname></term>
|
|
|
|
|
|
|
|
<listitem><para>Configure the out-of-memory (OOM) killing policy for the kernel and the userspace OOM
|
|
|
|
@@ -1133,18 +1133,17 @@
|
|
|
|
terminate services earlier, before the kernel would have to act.</para>
|
|
|
|
|
|
|
|
<para>This setting takes one of <constant>continue</constant>, <constant>stop</constant> or
|
|
|
|
- <constant>kill</constant>. If set to <constant>continue</constant> and a process of the service is
|
|
|
|
- killed by the OOM killer, this is logged but the service continues running. If set to
|
|
|
|
- <constant>stop</constant> the event is logged but the service is terminated cleanly by the service
|
|
|
|
- manager. If set to <constant>kill</constant> and one of the service's processes is killed by the OOM
|
|
|
|
- killer the kernel is instructed to kill all remaining processes of the service too, by setting the
|
|
|
|
+ <constant>kill</constant>. If set to <constant>continue</constant> and a process in the unit is
|
|
|
|
+ killed by the OOM killer, this is logged but the unit continues running. If set to
|
|
|
|
+ <constant>stop</constant> the event is logged but the unit is terminated cleanly by the service
|
|
|
|
+ manager. If set to <constant>kill</constant> and one of the unit's processes is killed by the OOM
|
|
|
|
+ killer the kernel is instructed to kill all remaining processes of the unit too, by setting the
|
|
|
|
<filename>memory.oom.group</filename> attribute to <constant>1</constant>; also see <ulink
|
|
|
|
- url="https://docs.kernel.org/admin-guide/cgroup-v2.html">kernel documentation</ulink>.
|
|
|
|
- </para>
|
|
|
|
+ url="https://docs.kernel.org/admin-guide/cgroup-v2.html">kernel documentation</ulink>.</para>
|
|
|
|
|
|
|
|
<para>Defaults to the setting <varname>DefaultOOMPolicy=</varname> in
|
|
|
|
<citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
|
|
- is set to, except for services where <varname>Delegate=</varname> is turned on, where it defaults to
|
|
|
|
+ is set to, except for units where <varname>Delegate=</varname> is turned on, where it defaults to
|
|
|
|
<constant>continue</constant>.</para>
|
|
|
|
|
|
|
|
<para>Use the <varname>OOMScoreAdjust=</varname> setting to configure whether processes of the unit
|
|
|
|
@@ -1154,10 +1153,9 @@
|
|
|
|
details.</para>
|
|
|
|
|
|
|
|
<para>This setting also applies to <command>systemd-oomd</command>. Similarly to the kernel OOM
|
|
|
|
- kills, this setting determines the state of the service after <command>systemd-oomd</command> kills a
|
|
|
|
- cgroup associated with the service.</para></listitem>
|
|
|
|
+ kills, this setting determines the state of the unit after <command>systemd-oomd</command> kills a
|
|
|
|
+ cgroup associated with it.</para></listitem>
|
|
|
|
</varlistentry>
|
|
|
|
-
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
<para id='shared-unit-options'>Check
|
|
|
|
diff --git a/src/core/load-fragment-gperf.gperf.in b/src/core/load-fragment-gperf.gperf.in
|
|
|
|
index 7675b7bb2e..81a5971339 100644
|
|
|
|
--- a/src/core/load-fragment-gperf.gperf.in
|
|
|
|
+++ b/src/core/load-fragment-gperf.gperf.in
|
|
|
|
@@ -555,6 +555,7 @@ Path.TriggerLimitBurst, config_parse_unsigned,
|
|
|
|
Scope.RuntimeMaxSec, config_parse_sec, 0, offsetof(Scope, runtime_max_usec)
|
|
|
|
Scope.RuntimeRandomizedExtraSec, config_parse_sec, 0, offsetof(Scope, runtime_rand_extra_usec)
|
|
|
|
Scope.TimeoutStopSec, config_parse_sec, 0, offsetof(Scope, timeout_stop_usec)
|
|
|
|
+Scope.OOMPolicy, config_parse_oom_policy, 0, offsetof(Scope, oom_policy)
|
|
|
|
{# The [Install] section is ignored here #}
|
|
|
|
Install.Alias, NULL, 0, 0
|
|
|
|
Install.WantedBy, NULL, 0, 0
|