XDG_RUNTIME_DIR: When is a user logged out?

Thomas Kluyver thomas at kluyver.me.uk
Thu May 10 14:27:43 UTC 2018

Thanks Lennart. Would it make sense for our application code to open a Pam session in this scenario so it counts as a login? Sorry if this is a silly question: I know ~nothing about how logins work.


On Thu, May 10, 2018, at 2:42 PM, Lennart Poettering wrote:
> On Do, 10.05.18 09:38, Thomas Kluyver (thomas at kluyver.me.uk) wrote:
> > The basedir spec says of XDG_RUNTIME_DIR:
> > 
> > > ...if the user fully logs out the directory MUST be removed.
> > 
> > What counts as logging out? For some application code, I assumed that if the application was running as user X, that meant user X was still logged in, and the application could rely on XDG_RUNTIME_DIR continuing to exist. However, some users have reported that if they run a process in nohup/screen and then disconnect, their XDG_RUNTIME_DIR is deleted because they have logged out. It looks like other people have had similar issues:
> > 
> > https://github.com/projectatomic/libpod/issues/659
> > https://unix.stackexchange.com/questions/386504/how-do-you-keep-systemd-user-services-alive-over-mosh
> > 
> > I tested this on a Debian system and I couldn't reproduce the problem: XDG_RUNTIME_DIR continued to exist when I disconnected and left a script running in nohup. But I don't know what to tell users who are experiencing this issue.
> > 
> > 1. When should the user count as logged out? Is my assumption that
> > the user is logged in while any process is running with their UID
> > reasonable? Can we clarify this in the spec?
> I wrote the part of the spec initially, but I left this intentionally
> vague, to give impementors a bit of freedom to define their session
> lifetimes.
> That said, on systemd systems the definition of "being logged in" is
> generally bound to "there's at least one PAM session around" for the
> user. And that is usually bound to "is there an utmp entry for the
> user"...
> And by that definition just having a process with the user's UID
> around is *not* sufficient to keep the XDG_RUNTIME_DIR around.
> Lennart
> -- 
> Lennart Poettering, Red Hat

More information about the xdg mailing list