summaryrefslogtreecommitdiff
path: root/src/login/logind-dbus.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-08-13 17:59:28 +0200
committerLennart Poettering <lennart@poettering.net>2013-08-13 17:59:28 +0200
commit405e0255d5e6950180d9563f1a26294b5360db03 (patch)
tree99bd33e34bee035602bfce76a8537d227414cf7f /src/login/logind-dbus.c
parentee530d8b73246f29781bd54a707ca75c7ef5a6cb (diff)
logind: restore logic to kill user processes when session ends
Diffstat (limited to 'src/login/logind-dbus.c')
-rw-r--r--src/login/logind-dbus.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index ed5d8d888c..345df9f1cc 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -2523,6 +2523,7 @@ int manager_start_scope(
const char *slice,
const char *description,
const char *after,
+ const char *kill_mode,
DBusError *error,
char **job) {
@@ -2594,6 +2595,18 @@ int manager_start_scope(
return log_oom();
}
+ if (!isempty(kill_mode)) {
+ const char *kill_mode_property = "KillMode";
+
+ if (!dbus_message_iter_open_container(&sub, DBUS_TYPE_STRUCT, NULL, &sub2) ||
+ !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_STRING, &kill_mode_property) ||
+ !dbus_message_iter_open_container(&sub2, DBUS_TYPE_VARIANT, "s", &sub3) ||
+ !dbus_message_iter_append_basic(&sub3, DBUS_TYPE_STRING, &kill_mode) ||
+ !dbus_message_iter_close_container(&sub2, &sub3) ||
+ !dbus_message_iter_close_container(&sub, &sub2))
+ return log_oom();
+ }
+
/* cgroup empty notification is not available in containers
* currently. To make this less problematic, let's shorten the
* stop timeout for sessions, so that we don't wait