[PATCH] activation: set children oom_score_adj to 0
WaLyong Cho
walyong.cho at samsung.com
Wed Jun 8 00:54:31 UTC 2016
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
More information about the dbus
mailing list