From: WaLyong Cho To: dbus@lists.freedesktop.org Subject: [PATCH] activation: set children oom_score_adj to 0 Date: Wed, 08 Jun 2016 09:54:31 +0900 Message-id: <1465347271-3410-1-git-send-email-walyong.cho@samsung.com> X-Mailer: git-send-email 2.5.5 In-reply-to: References: If dbus is running as systemd service, dbus daemon is running with oom_score_adj -900 by OOMScoreAdjust=-900. And children will also have same value with dbus daemon. To avoid this, set the child itself values after fork () to 0. --- dbus/dbus-spawn.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dbus/dbus-spawn.c b/dbus/dbus-spawn.c index afdcd68..155622b 100644 --- a/dbus/dbus-spawn.c +++ b/dbus/dbus-spawn.c @@ -1359,6 +1359,15 @@ _dbus_spawn_async_with_babysitter (DBusBabysitter **sitter_p, } else if (grandchild_pid == 0) { +#ifdef __linux__ + int fd = open ("/proc/self/oom_score_adj", O_WRONLY | O_CLOEXEC); + + if (fd >= 0) + { + write (fd, "0", sizeof (char)); + _dbus_close (fd, NULL); + } +#endif /* Go back to ignoring SIGPIPE, since it's evil */ signal (SIGPIPE, SIG_IGN); -- 2.5.5