'\" t .TH "SD_SESSION_IS_ACTIVE" "3" "" "systemd 204" "sd_session_is_active" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" sd_session_is_active, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty \- Determine state of a specific session .SH "SYNOPSIS" .sp .ft B .nf #include .fi .ft .HP \w'int\ sd_session_is_active('u .BI "int sd_session_is_active(const\ char*\ " "session" ");" .HP \w'int\ sd_session_get_state('u .BI "int sd_session_get_state(const\ char*\ " "session" ", char**\ " "state" ");" .HP \w'int\ sd_session_get_uid('u .BI "int sd_session_get_uid(const\ char*\ " "session" ", uid_t*\ " "uid" ");" .HP \w'int\ sd_session_get_seat('u .BI "int sd_session_get_seat(const\ char*\ " "session" ", char**\ " "seat" ");" .HP \w'int\ sd_session_get_service('u .BI "int sd_session_get_service(const\ char*\ " "session" ", char**\ " "service" ");" .HP \w'int\ sd_session_get_type('u .BI "int sd_session_get_type(const\ char*\ " "session" ", char**\ " "type" ");" .HP \w'int\ sd_session_get_class('u .BI "int sd_session_get_class(const\ char*\ " "session" ", char**\ " "class" ");" .HP \w'int\ sd_session_get_display('u .BI "int sd_session_get_display(const\ char*\ " "session" ", char**\ " "display" ");" .HP \w'int\ sd_session_get_tty('u .BI "int sd_session_get_tty(const\ char*\ " "session" ", char**\ " "tty" ");" .SH "DESCRIPTION" .PP \fBsd_session_is_active()\fR may be used to determine whether the session identified by the specified session identifier is currently active (i\&.e\&. currently in the foreground and available for user input) or not\&. .PP \fBsd_session_get_state()\fR may be used to determine the state of the session identified by the specified session identifier\&. The following states are currently known: online (session logged in, but session not active, i\&.e\&. not in the foreground), active (session logged in and active, i\&.e\&. in the foreground), closing (session nominally logged out, but some processes belonging to it are still around)\&. In the future additional states might be defined, client code should be written to be robust in regards to additional state strings being returned\&. This function is a more generic version of \fBsd_session_is_active()\fR\&. The returned string needs to be freed with the libc \fBfree\fR(3) call after use\&. .PP \fBsd_session_get_uid()\fR may be used to determine the user identifier of the Unix user the session identified by the specified session identifier belongs to\&. .PP \fBsd_session_get_seat()\fR may be used to determine the seat identifier of the seat the session identified by the specified session identifier belongs to\&. Note that not all sessions are attached to a seat, this call will fail for them\&. The returned string needs to be freed with the libc \fBfree\fR(3) call after use\&. .PP \fBsd_session_get_service()\fR may be used to determine the name of the service (as passed during PAM session setup) that registered the session identified by the specified session identifier\&. The returned string needs to be freed with the libc \fBfree\fR(3) call after use\&. .PP \fBsd_session_get_type()\fR may be used to determine the type of the session identified by the specified session identifier\&. The returned string is one of x11, tty or unspecified and needs to be freed with the libc \fBfree\fR(3) call after use\&. .PP \fBsd_session_get_class()\fR may be used to determine the class of the session identified by the specified session identifier\&. The returned string is one of user, greeter, lock\-screen, or background and needs to be freed with the libc \fBfree\fR(3) call after use\&. .PP \fBsd_session_get_display()\fR may be used to determine the X11 display of the session identified by the specified session identifier\&. The returned string needs to be freed with the libc \fBfree\fR(3) call after use\&. .PP \fBsd_session_get_tty()\fR may be used to determine the TTY device of the session identified by the specified session identifier\&. The returned string needs to be freed with the libc \fBfree\fR(3) call after use\&. .PP If the session parameter of any of these functions is passed as NULL the operation is executed for the session the calling process is a member of, if there is any\&. .SH "RETURN VALUE" .PP If the test succeeds \fBsd_session_is_active()\fR returns a positive integer, if it fails 0\&. On success \fBsd_session_get_state()\fR, \fBsd_session_get_uid()\fR, \fBsd_session_get_seat()\fR, \fBsd_session_get_service()\fR, \fBsd_session_get_type()\fR, \fBsd_session_get_class()\fR, \fBsd_session_get_display()\fR and \fBsd_session_get_tty()\fR return 0 or a positive integer\&. On failure, these calls return a negative errno\-style error code\&. .SH "NOTES" .PP The \fBsd_session_is_active()\fR, \fBsd_session_get_state()\fR, \fBsd_session_get_uid()\fR, \fBsd_session_get_seat()\fR, \fBsd_session_get_service()\fR, \fBsd_session_get_type()\fR, \fBsd_session_get_class()\fR, \fBsd_session_get_display()\fR and \fBsd_session_get_tty()\fR interfaces are available as shared library, which can be compiled and linked to with the libsystemd\-login \fBpkg-config\fR(1) file\&. .SH "SEE ALSO" .PP \fBsystemd\fR(1), \fBsd-login\fR(3), \fBsd_pid_get_session\fR(3)