From 05b92b1d97c89e17ceb01aa6beee6ef21196ba31 Mon Sep 17 00:00:00 2001 From: Sven Eden Date: Mon, 18 Jun 2018 08:43:58 +0200 Subject: [PATCH] Prep v238: Do not kill user processes if not forced and the user is lingering. --- src/login/logind-session.c | 7 +++++++ src/login/logind-user.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/login/logind-session.c b/src/login/logind-session.c index f1e6d1dd7..6d2b755eb 100644 --- a/src/login/logind-session.c +++ b/src/login/logind-session.c @@ -732,7 +732,14 @@ static int session_stop_cgroup(Session *s, bool force) { assert(s); +#if 0 /// elogind must not kill lingering user processes alive if (force || manager_shall_kill(s->manager, s->user->name)) { +#else + if (force + || ( manager_shall_kill(s->manager, s->user->name) + && (user_check_linger_file(s->user) < 1) ) ) { +#endif // 1 + r = session_kill(s, KILL_ALL, SIGTERM); if (r < 0) return r; diff --git a/src/login/logind-user.c b/src/login/logind-user.c index 7bf92b2c2..86bb49406 100644 --- a/src/login/logind-user.c +++ b/src/login/logind-user.c @@ -722,8 +722,8 @@ bool user_may_gc(User *u, bool drop_not_started) { return false; if (u->service_job && manager_job_is_active(u->manager, u->service_job)) -#endif // 0 return false; +#endif // 0 return true; } -- 2.30.2