sd_pid_get_session
systemd
Developer
Lennart
Poettering
lennart@poettering.net
sd_pid_get_session
3
sd_pid_get_session
sd_pid_get_owner_uid
Determine session or owner of a session of a specific PID
#include <systemd/sd-login.h>
int sd_pid_get_session
pid_t pid
char** session
int sd_pid_get_owner_uid
pid_t pid
uid_t* uid
Description
sd_pid_get_session() may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
suitable for usage in file system paths. Note that not
all processes are part of a login session (e.g. system
service processes and user processes that are shared
between multiple sessions of the same user). For
processes not being part of a login session this
function will fail. The returned string needs to be
freed with the libc
free3
call after use.
sd_pid_get_owner_uid() may
be used to determine the Unix user identifier of the
owner of the session of a process identified the
specified PID. Note that this function will succeed
for user processes which are shared between multiple
login sessions of the same user, where
sd_pid_get_session() will
fail. For processes not being part of a login session
and not being a shared process of a user this function
will fail.
Return Value
On success these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.
Notes
The sd_pid_get_session()
and sd_pid_get_owner_uid()
interfaces are available as shared library, which can
be compiled and linked to with the
libsystemd-login
pkg-config1
file.
Note that the login session identifier as
returned by sd_pid_get_session()
is completely unrelated to the process session
identifier as returned by
getsid2.
See Also
systemd1,
sd-login7,
sd_session_is_active3,
getsid2