2
.\" Title: sd_pid_get_session
3
.\" Author: Lennart Poettering <lennart@poettering.net>
4
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
6
.\" Manual: sd_pid_get_session
10
.TH "SD_PID_GET_SESSION" "3" "03/16/2012" "systemd" "sd_pid_get_session"
11
.\" -----------------------------------------------------------------
12
.\" * Define some portability stuff
13
.\" -----------------------------------------------------------------
14
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15
.\" http://bugs.debian.org/507673
16
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
17
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20
.\" -----------------------------------------------------------------
21
.\" * set default formatting
22
.\" -----------------------------------------------------------------
23
.\" disable hyphenation
25
.\" disable justification (adjust text to left margin only)
27
.\" -----------------------------------------------------------------
28
.\" * MAIN CONTENT STARTS HERE *
29
.\" -----------------------------------------------------------------
31
sd_pid_get_session, sd_pid_get_unit, sd_pid_get_owner_uid \- Determine session, service or owner of a session of a specific PID
36
#include <systemd/sd\-login\&.h>
39
.HP \w'int\ sd_pid_get_session('u
40
.BI "int sd_pid_get_session(pid_t\ " "pid" ", char**\ " "session" ");"
41
.HP \w'int\ sd_pid_get_unit('u
42
.BI "int sd_pid_get_unit(pid_t\ " "pid" ", char**\ " "unit" ");"
43
.HP \w'int\ sd_pid_get_owner_uid('u
44
.BI "int sd_pid_get_owner_uid(pid_t\ " "pid" ", uid_t*\ " "uid" ");"
47
\fBsd_pid_get_session()\fR
48
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, user processes that are shared between multiple sessions of the same user, or kernel threads)\&. For processes not being part of a login session this function will fail\&. The returned string needs to be freed with the libc
52
\fBsd_pid_get_unit()\fR
53
may be used to determine the systemd unit (i\&.e\&. system service) identifier of a process identified by the specified process identifier\&. The unit name is a short string, suitable for usage in file system paths\&. Note that not all processes are part of a unit/service (e\&.g\&. user processes, or kernel threads)\&. For processes not being part of a systemd unit/system service this function will fail\&. The returned string needs to be freed with the libc
57
\fBsd_pid_get_owner_uid()\fR
58
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
59
\fBsd_pid_get_session()\fR
60
will fail\&. For processes not being part of a login session and not being a shared process of a user this function will fail\&.
64
paramater of any of these functions is passed as 0 the operation is executed for the calling process\&.
67
On success these calls return 0 or a positive integer\&. On failure, these calls return a negative errno\-style error code\&.
71
\fBsd_pid_get_session()\fR,
72
\fBsd_pid_get_pid()\fR, and
73
\fBsd_pid_get_owner_uid()\fR
74
interfaces are available as shared library, which can be compiled and linked to with the
79
Note that the login session identifier as returned by
80
\fBsd_pid_get_session()\fR
81
is completely unrelated to the process session identifier as returned by
88
\fBsd_session_is_active\fR(3),
92
\fBLennart Poettering\fR <\&lennart@poettering\&.net\&>