Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


sd_uid_get_state(3) — Linux manual page

NAME |SYNOPSIS |DESCRIPTION |RETURN VALUE |NOTES |HISTORY |SEE ALSO |COLOPHON

SD_UID_GET_STATE(3)          sd_uid_get_stateSD_UID_GET_STATE(3)

NAME        top

       sd_uid_get_state, sd_uid_is_on_seat, sd_uid_get_sessions,       sd_uid_get_seats, sd_uid_get_display, sd_uid_get_login_time -       Determine login state of a specific Unix user ID

SYNOPSIS        top

#include <systemd/sd-login.h>int sd_uid_get_state(uid_tuid, char **state);int sd_uid_is_on_seat(uid_tuid, intrequire_active,const char *seat);int sd_uid_get_sessions(uid_tuid, intrequire_active,char ***sessions);int sd_uid_get_seats(uid_tuid, intrequire_active,char ***seats);int sd_uid_get_display(uid_tuid, char **session);int sd_uid_get_login_time(uid_tuid, uint64_t *usec);

DESCRIPTION        top

sd_uid_get_state()may be used to determine the login state of a       specific Unix user identifier. The following states are currently       known: "offline" (user not logged in at all), "lingering" (user       not logged in, but some user services running), "online" (user       logged in, but not active, i.e. has no session in the foreground),       "active" (user logged in, and has at least one active session,       i.e. one session in the foreground), "closing" (user not logged       in, and not lingering, but some processes 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. The returned string needs to be freed with the       libcfree(3) call after use.sd_uid_is_on_seat()may be used to determine whether a specific       user is logged in or active on a specific seat. Accepts a Unix       user identifier and a seat identifier string as parameters. Therequire_active parameter is a boolean value. If non-zero (true),       this function will test if the user is active (i.e. has a session       that is in the foreground and accepting user input) on the       specified seat, otherwise (false) only if the user is logged in       (and possibly inactive) on the specified seat.sd_uid_get_sessions()may be used to determine the current       sessions of the specified user. Accepts a Unix user identifier as       parameter. Therequire_active parameter controls whether the       returned list shall consist of only those sessions where the user       is currently active (> 0), where the user is currently online but       possibly inactive (= 0), or logged in but possibly closing the       session (< 0). The call returns aNULLterminated string array of       session identifiers insessions which needs to be freed by the       caller with the libcfree(3) call after use, including all the       strings referenced. If the string array parameter is passed asNULL, the array will not be filled in, but the return code still       indicates the number of current sessions. Note that instead of an       empty arrayNULLmay be returned and should be considered       equivalent to an empty array.       Similarly,sd_uid_get_seats()may be used to determine the list of       seats on which the user currently has sessions. Similar semantics       apply, however note that the user may have multiple sessions on       the same seat as well as sessions with no attached seat and hence       the number of entries in the returned array may differ from the       one returned bysd_uid_get_sessions().sd_uid_get_display()returns the name of the "primary" session of       a user. If the user has graphical sessions, it will be the oldest       graphical session. Otherwise, it will be the oldest open session.sd_uid_get_login_time()may be used to determine the time the       user's service manager has been invoked, which is the time when       the user's first active session, since which they stayed logged in       continuously, began. Theusec is in microseconds since the epoch       (CLOCK_REALTIME). This call will fail with-ENXIOif the user is       not currently logged in.

RETURN VALUE        top

       On success,sd_uid_get_state()andsd_uid_get_login_time()returns       0 or a positive integer. If the test succeeds,sd_uid_is_on_seat()       returns a positive integer; if it fails, 0.sd_uid_get_sessions()       andsd_uid_get_seats()return the number of entries in the       returned arrays.sd_uid_get_display()returns a non-negative code       on success. On failure, these calls return a negative errno-style       error code.Errors       Returned errors may indicate the following problems:-ENODATA           The given field is not specified for the described user.-ENXIO           The specified seat is unknown.-EINVAL           An input parameter was invalid (out of range, orNULL, where           that is not accepted). This is also returned if the passed           user ID is0xFFFFor0xFFFFFFFF, which are undefined on Linux.-ENOMEM           Memory allocation failed.

NOTES        top

       Functions described here are available as a shared library, which       can be compiled against and linked to with thelibsystemd pkg-config(1) file.       The code described here usesgetenv(3), which is declared to be       not multi-thread-safe. This means that the code calling the       functions described here must not callsetenv(3) from a parallel       thread. It is recommended to only do calls tosetenv()from an       early phase of the program when no other threads have been       started.

HISTORY        top

sd_uid_get_display()was added in version 213.sd_uid_get_login_time()was added in version 254.

SEE ALSO        top

systemd(1),sd-login(3),sd_pid_get_owner_uid(3)

COLOPHON        top

       This page is part of thesystemd (systemd system and service       manager) project.  Information about the project can be found at       ⟨http://www.freedesktop.org/wiki/Software/systemd⟩.  If you have a       bug report for this manual page, see       ⟨http://www.freedesktop.org/wiki/Software/systemd/#bugreports⟩.       This page was obtained from the project's upstream Git repository       ⟨https://github.com/systemd/systemd.git⟩ on 2025-08-11.  (At that       time, the date of the most recent commit that was found in the       repository was 2025-08-11.)  If you discover any rendering       problems in this HTML version of the page, or you believe there is       a better or more up-to-date source for the page, or you have       corrections or improvements to the information in this COLOPHON       (which isnot part of the original manual page), send a mail to       man-pages@man7.orgsystemd 258~rc2SD_UID_GET_STATE(3)

Pages that refer to this page:sd-login(3)org.freedesktop.login1(5)systemd.directives(7)systemd.index(7)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp