summaryrefslogtreecommitdiffstats
path: root/upstream/mageia-cauldron/man3/sd_session_is_active.3
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/mageia-cauldron/man3/sd_session_is_active.3')
-rw-r--r--upstream/mageia-cauldron/man3/sd_session_is_active.3258
1 files changed, 258 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man3/sd_session_is_active.3 b/upstream/mageia-cauldron/man3/sd_session_is_active.3
new file mode 100644
index 00000000..cc642e5b
--- /dev/null
+++ b/upstream/mageia-cauldron/man3/sd_session_is_active.3
@@ -0,0 +1,258 @@
+'\" t
+.TH "SD_SESSION_IS_ACTIVE" "3" "" "systemd 255" "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_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_username, sd_session_get_seat, sd_session_get_start_time, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_desktop, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user, sd_session_get_leader \- Determine state of a specific session
+.SH "SYNOPSIS"
+.sp
+.ft B
+.nf
+#include <systemd/sd\-login\&.h>
+.fi
+.ft
+.HP \w'int\ sd_session_is_active('u
+.BI "int sd_session_is_active(const\ char\ *" "session" ");"
+.HP \w'int\ sd_session_is_remote('u
+.BI "int sd_session_is_remote(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_username('u
+.BI "int sd_session_get_username(const\ char\ *" "session" ", char\ **" "username" ");"
+.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_start_time('u
+.BI "int sd_session_get_start_time(const\ char\ *" "session" ", uint64_t\ *" "usec" ");"
+.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_desktop('u
+.BI "int sd_session_get_desktop(const\ char\ *" "session" ", char\ **" "desktop" ");"
+.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_leader('u
+.BI "int sd_session_get_leader(const\ char\ *" "session" ", pid_t\ *" "leader" ");"
+.HP \w'int\ sd_session_get_remote_host('u
+.BI "int sd_session_get_remote_host(const\ char\ *" "session" ", char\ **" "remote_host" ");"
+.HP \w'int\ sd_session_get_remote_user('u
+.BI "int sd_session_get_remote_user(const\ char\ *" "session" ", char\ **" "remote_user" ");"
+.HP \w'int\ sd_session_get_tty('u
+.BI "int sd_session_get_tty(const\ char\ *" "session" ", char\ **" "tty" ");"
+.HP \w'int\ sd_session_get_vt('u
+.BI "int sd_session_get_vt(const\ char\ *" "session" ", unsigned\ int\ *" "vt" ");"
+.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_is_remote()\fR
+may be used to determine whether the session identified by the specified session identifier is a remote session (i\&.e\&. its remote host is known) 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_username()\fR
+may be used to determine the name of the Unix user the session identified by the specified session identifier belongs to\&. The returned string needs to be freed with the libc
+\fBfree\fR(3)
+call after use\&.
+.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 (returning
+\fB\-ENODATA\fR) for them\&. The returned string needs to be freed with the libc
+\fBfree\fR(3)
+call after use\&.
+.PP
+\fBsd_session_get_start_time()\fR
+may be used to determine the start time of the session identified by the specified session identifier belongs to\&. The
+\fIusec\fR
+is in microseconds since the epoch (\fBCLOCK_REALTIME\fR)\&.
+.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",
+"wayland",
+"tty",
+"mir"
+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_desktop()\fR
+may be used to determine the brand of the desktop running on the session identified by the specified session identifier\&. This field can be set freely by desktop environments and does not follow any special formatting\&. However, desktops are strongly recommended to use the same identifiers and capitalization as for
+\fI$XDG_CURRENT_DESKTOP\fR, as defined by the
+\m[blue]\fBDesktop Entry Specification\fR\m[]\&\s-2\u[1]\d\s+2\&. The returned string 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_leader()\fR
+may be used to determine the PID of the leader of the session identified by the specified session identifier\&.
+.PP
+\fBsd_session_get_remote_host()\fR
+may be used to determine the remote hostname 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_remote_user()\fR
+may be used to determine the remote username 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\&. Note that this value is rarely known to the system, and even then should not be relied on\&.
+.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
+\fBsd_session_get_vt()\fR
+may be used to determine the VT number of the session identified by the specified session identifier\&. This function will return an error if the seat does not support VTs\&.
+.PP
+If the
+\fIsession\fR
+parameter of any of these functions is passed as
+\fBNULL\fR, 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
+and
+\fBsd_session_is_remote()\fR
+return a positive integer; if it fails, 0\&. On success,
+\fBsd_session_get_state()\fR,
+\fBsd_session_get_uid()\fR,
+\fBsd_session_get_username()\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,
+\fBsd_session_get_leader()\fR,
+\fBsd_session_get_remote_user()\fR,
+\fBsd_session_get_remote_host()\fR
+and
+\fBsd_session_get_tty()\fR
+return 0 or a positive integer\&. On failure, these calls return a negative errno\-style error code\&.
+.SS "Errors"
+.PP
+Returned errors may indicate the following problems:
+.PP
+\fB\-ENXIO\fR
+.RS 4
+The specified session does not exist\&.
+.RE
+.PP
+\fB\-ENODATA\fR
+.RS 4
+The given field is not specified for the described session\&.
+.RE
+.PP
+\fB\-EINVAL\fR
+.RS 4
+An input parameter was invalid (out of range, or
+\fBNULL\fR, where that is not accepted)\&.
+.RE
+.PP
+\fB\-ENOMEM\fR
+.RS 4
+Memory allocation failed\&.
+.RE
+.SH "NOTES"
+.PP
+Functions described here are available as a shared library, which can be compiled against and linked to with the
+\fBlibsystemd\fR\ \&\fBpkg-config\fR(1)
+file\&.
+.PP
+The code described here uses
+\fBgetenv\fR(3), which is declared to be not multi\-thread\-safe\&. This means that the code calling the functions described here must not call
+\fBsetenv\fR(3)
+from a parallel thread\&. It is recommended to only do calls to
+\fBsetenv()\fR
+from an early phase of the program when no other threads have been started\&.
+.SH "HISTORY"
+.PP
+\fBsd_session_get_state()\fR
+was added in version 186\&.
+.PP
+\fBsd_session_get_tty()\fR
+was added in version 198\&.
+.PP
+\fBsd_session_get_vt()\fR
+was added in version 207\&.
+.PP
+\fBsd_session_is_remote()\fR,
+\fBsd_session_get_remote_host()\fR, and
+\fBsd_session_get_remote_user()\fR
+were added in version 209\&.
+.PP
+\fBsd_session_get_desktop()\fR
+was added in version 217\&.
+.PP
+\fBsd_session_get_username()\fR,
+\fBsd_session_get_start_time()\fR, and
+\fBsd_session_get_leader()\fR
+were added in version 254\&.
+.SH "SEE ALSO"
+.PP
+\fBsystemd\fR(1),
+\fBsd-login\fR(3),
+\fBsd_pid_get_session\fR(3)
+.SH "NOTES"
+.IP " 1." 4
+Desktop Entry Specification
+.RS 4
+\%https://standards.freedesktop.org/desktop-entry-spec/latest/
+.RE