'\" t .TH "SD\-LOGIN" "3" "" "systemd 232" "sd-login" .\" ----------------------------------------------------------------- .\" * 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-login \- APIs for tracking logins .SH "SYNOPSIS" .sp .ft B .nf #include .fi .ft .HP \w'\fBpkg\-config\ \-\-cflags\ \-\-libs\ libsystemd\fR\ 'u \fBpkg\-config \-\-cflags \-\-libs libsystemd\fR .SH "DESCRIPTION" .PP sd\-login\&.h provides APIs to introspect and monitor seat, login session and user status information on the local system\&. .PP See \m[blue]\fBMulti\-Seat on Linux\fR\m[]\&\s-2\u[1]\d\s+2 for an introduction into multi\-seat support on Linux, the background for this set of APIs\&. .PP Note that these APIs only allow purely passive access and monitoring of seats, sessions and users\&. To actively make changes to the seat configuration, terminate login sessions, or switch session on a seat you need to utilize the D\-Bus API of systemd\-logind, instead\&. .PP These functions synchronously access data in /proc, /sys/fs/cgroup and /run\&. All of these are virtual file systems, hence the runtime cost of the accesses is relatively cheap\&. .PP It is possible (and often a very good choice) to mix calls to the synchronous interface of sd\-login\&.h with the asynchronous D\-Bus interface of systemd\-logind\&. However, if this is done you need to think a bit about possible races since the stream of events from D\-Bus and from sd\-login\&.h interfaces such as the login monitor are asynchronous and not ordered against each other\&. .PP If the functions return string arrays, these are generally \fBNULL\fR terminated and need to be freed by the caller with the libc \fBfree\fR(3) call after use, including the strings referenced therein\&. Similarly, individual strings returned need to be freed, as well\&. .PP As a special exception, instead of an empty string array \fBNULL\fR may be returned, which should be treated equivalent to an empty string array\&. .PP See \fBsd_pid_get_session\fR(3), \fBsd_uid_get_state\fR(3), \fBsd_session_is_active\fR(3), \fBsd_seat_get_active\fR(3), \fBsd_get_seats\fR(3), \fBsd_login_monitor_new\fR(3) for more information about the functions implemented\&. .SH "NOTES" .PP These APIs are implemented as a shared library, which can be compiled and linked to with the \fBlibsystemd\fR\ \&\fBpkg-config\fR(1) file\&. .SH "SEE ALSO" .PP \fBsystemd\fR(1), \fBsd_pid_get_session\fR(3), \fBsd_uid_get_state\fR(3), \fBsd_session_is_active\fR(3), \fBsd_seat_get_active\fR(3), \fBsd_get_seats\fR(3), \fBsd_login_monitor_new\fR(3), \fBsd-daemon\fR(3), \fBpkg-config\fR(1) .SH "NOTES" .IP " 1." 4 Multi-Seat on Linux .RS 4 \%http://www.freedesktop.org/wiki/Software/systemd/multiseat .RE