From: Sven Eden Date: Mon, 18 Jun 2018 06:43:58 +0000 (+0200) Subject: Prep v238: Do not kill user processes if not forced and the user is lingering. X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=05b92b1d97c89e17ceb01aa6beee6ef21196ba31;p=elogind.git Prep v238: Do not kill user processes if not forced and the user is lingering. --- 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; }