diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-03-14 01:38:19 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-03-14 01:49:44 +0100 |
commit | 66cdd0f2d0670b054bd27dad16fcb5838b11dde3 (patch) | |
tree | aacbe786c7403a6f4f0782b4d6403d0f961b1d9c /src/login/logind-user.c | |
parent | bcdbbd7ee1b7dc6ec19261c957ed11e5e1ed1aaf (diff) | |
download | systemd-66cdd0f2d0670b054bd27dad16fcb5838b11dde3.tar.gz |
logind: automatically remove SysV + POSIX IPC objects when the users owning them fully log out
Diffstat (limited to 'src/login/logind-user.c')
-rw-r--r-- | src/login/logind-user.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/login/logind-user.c b/src/login/logind-user.c index 9bbe879571..961cbcb27b 100644 --- a/src/login/logind-user.c +++ b/src/login/logind-user.c @@ -35,6 +35,7 @@ #include "bus-util.h" #include "bus-error.h" #include "conf-parser.h" +#include "clean-ipc.h" #include "logind-user.h" User* user_new(Manager *m, uid_t uid, gid_t gid, const char *name) { @@ -572,6 +573,13 @@ int user_finalize(User *u) { if (k < 0) r = k; + /* Clean SysV + POSIX IPC objects */ + if (u->manager->remove_ipc) { + k = clean_ipc(u->uid); + if (k < 0) + r = k; + } + unlink(u->state_file); user_add_to_gc_queue(u); |