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 (up to 64 characters),
consisting only of the characters a-zA-Z0-9 as well as
'-' and '_'. It is 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