aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Walker <mike.walker@napkindrawing.com>2022-07-07 20:28:37 +0000
committerMateusz Piotrowski <0mp@FreeBSD.org>2022-07-22 00:09:10 +0000
commit42422c5a4a5035296b2c39c584b8cfc3aa6f4012 (patch)
treef13e71e36f9bd2881f610fd887cfa9689c36948b
parent83b8f6f7f0a0a5e963683756976e4dded07e192a (diff)
downloadsrc-42422c5a4a5035296b2c39c584b8cfc3aa6f4012.tar.gz
src-42422c5a4a5035296b2c39c584b8cfc3aa6f4012.zip
rc.subr: Make sure oomprotect protects existing children
The rc(8) framework support protecting services from OOM killer. The current implementation applies the protection after the service has already started. This works fine if only the main process is to be protected (*_oomprotect=yes). However, the current implementation fails to protect existing children when children are also to be protected (*_oomprotect=all). This patch fixes that. Note: it is not easy to apply the protectoin earlier because we want to support both the services which use the "command" variable and those that use the "start_cmd" variable. PR: 256148 Approved by: adrian, osogbo Tested by: Jamie Landeg-Jones <jamie@catflap.org> Fixes: 3bead71e959d - Add a global option where we can protect MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D35747 (cherry picked from commit 68e035c0172b441db772de41ad0f8977679bfedc)
-rw-r--r--libexec/rc/rc.subr2
1 files changed, 1 insertions, 1 deletions
diff --git a/libexec/rc/rc.subr b/libexec/rc/rc.subr
index b027fa5facf4..df91737566d5 100644
--- a/libexec/rc/rc.subr
+++ b/libexec/rc/rc.subr
@@ -1275,7 +1275,7 @@ $command $rc_flags $command_args"
[ -z "${rc_pid}" ] && eval $_pidcmd
case $_oomprotect in
[Aa][Ll][Ll])
- ${PROTECT} -i -p ${rc_pid}
+ ${PROTECT} -d -i -p ${rc_pid}
;;
[Yy][Ee][Ss])
${PROTECT} -p ${rc_pid}