X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsd_pid_get_session.xml;h=fac072a4c00c54f267d6a7d1f5fb0bee57984c85;hp=7897a2cd3ea761540b9bc7d89b138cee2f2d23f3;hb=57ceb09c123ff52a2229413e5ac42a02d80089b6;hpb=cb07866b1b7c11e687a322d70dd9f9d73bbbe488 diff --git a/man/sd_pid_get_session.xml b/man/sd_pid_get_session.xml index 7897a2cd3..fac072a4c 100644 --- a/man/sd_pid_get_session.xml +++ b/man/sd_pid_get_session.xml @@ -1,6 +1,6 @@ + "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> - - - - sd_pid_get_session - systemd - - - - Developer - Lennart - Poettering - lennart@poettering.net - - - - - - sd_pid_get_session - 3 - - - - 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 - - - - - #include <systemd/sd-login.h> - - - int sd_pid_get_session - pid_t pid - char** session - - - - int sd_pid_get_unit - pid_t pid - char** unit - - - - int sd_pid_get_owner_uid - pid_t pid - uid_t* uid - - - - - - Description - - sd_pid_get_session() 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 - free3 - call after use. - - sd_pid_get_unit() 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 - free3 - call after use. - - sd_pid_get_owner_uid() 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 - sd_pid_get_session() will - fail. For processes not being part of a login session - and not being a shared process of a user this function - will fail. - - If the pid paramater of any - of these functions is passed as 0 the operation is - executed for the calling process. - - - - Return Value - - On success these calls return 0 or a positive - integer. On failure, these calls return a negative - errno-style error code. - - - - Notes - - The sd_pid_get_session(), - sd_pid_get_pid(), and - sd_pid_get_owner_uid() interfaces - are available as shared library, which can be compiled - and linked to with the - libsystemd-login - pkg-config1 - file. - - Note that the login session identifier as - returned by sd_pid_get_session() - is completely unrelated to the process session - identifier as returned by - getsid2. - - - - See Also - - - systemd1, - sd-login3, - sd_session_is_active3, - getsid2 - - + + + + sd_pid_get_session + systemd + + + + Developer + Lennart + Poettering + lennart@poettering.net + + + + + + sd_pid_get_session + 3 + + + + sd_pid_get_session + sd_pid_get_unit + sd_pid_get_user_unit + sd_pid_get_owner_uid + sd_pid_get_machine_name + sd_pid_get_slice + sd_peer_get_session + sd_peer_get_unit + sd_peer_get_user_unit + sd_peer_get_owner_uid + sd_peer_get_machine_name + sd_peer_get_slice + Determine session, service, owner of a + session, container/VM or slice of a specific + PID or socket peer + + + + + #include <systemd/sd-login.h> + + + int sd_pid_get_session + pid_t pid + char **session + + + + int sd_pid_get_unit + pid_t pid + char **unit + + + + int sd_pid_get_user_unit + pid_t pid + char **unit + + + + int sd_pid_get_owner_uid + pid_t pid + uid_t *uid + + + + int sd_pid_get_machine_name + pid_t pid + char **name + + + + int sd_pid_get_slice + pid_t pid + char **slice + + + + int sd_peer_get_session + int fd + char **session + + + + int sd_peer_get_unit + int fd + char **unit + + + + int sd_peer_get_user_unit + int fd + char **unit + + + + int sd_peer_get_owner_uid + int fd + uid_t *uid + + + + int sd_peer_get_machine_name + int fd + char **name + + + + int sd_peer_get_slice + int fd + char **slice + + + + + + Description + + sd_pid_get_session() 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 with + -ENXIO. The returned string needs to be freed with the libc + free3 + call after use. + + sd_pid_get_unit() may be used to + determine the systemd system unit (i.e. system service) identifier + of a process identified by the specified PID. The unit name is a + short string, suitable for usage in file system paths. Note that + not all processes are part of a system unit/service (e.g. user + processes, or kernel threads). For processes not being part of a + systemd system unit this function will fail with -ENXIO (More + specifically: this call will not work for processes that are part + of user units, use sd_pid_get_user_unit() for + that.) The returned string needs to be freed with the libc + free3 + call after use. + + sd_pid_get_user_unit() may be used to + determine the systemd user unit (i.e. user service) identifier of + a process identified by the specified PID. This is similar to + sd_pid_get_unit() but applies to user units + instead of system units. + + sd_pid_get_owner_uid() 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 + sd_pid_get_session() will fail. For processes + not being part of a login session and not being a shared process + of a user this function will fail with -ENXIO. + + sd_pid_get_machine_name() may be used + to determine the name of the VM or container is a member of. The + machine name is a short string, suitable for usage in file system + paths. The returned string needs to be freed with the libc + free3 + call after use. For processes not part of a VM or containers this + function fails with -ENXIO. + + sd_pid_get_slice() may be used to + determine the slice unit the process is a member of. See + systemd.slice5 + for details about slices. The returned string needs to be freed + with the libc + free3 + call after use. + + If the pid parameter of any of these + functions is passed as 0, the operation is executed for the + calling process. + + The sd_peer_get_session(), + sd_peer_get_unit(), + sd_peer_get_user_unit(), + sd_peer_get_owner_uid(), + sd_peer_get_machine_name() and + sd_peer_get_slice() calls operate similar to + their PID counterparts, but operate on a connected AF_UNIX socket + and retrieve information about the connected peer process. + + + + Return Value + + On success, these calls return 0 or a positive integer. On + failure, these calls return a negative errno-style error + code. + + + + Errors + + Returned errors may indicate the following problems: + + + + + -ENXIO + + Given field is not specified for the described + process or peer. + + + + + -ESRCH + + The specified PID does not refer to a running + process. + + + + + -ENOMEM + + Memory allocation failed. + + + + + + Notes + + The sd_pid_get_session(), + sd_pid_get_unit(), + sd_pid_get_user_unit(), + sd_pid_get_owner_uid(), + sd_pid_get_machine_name(), + sd_pid_get_slice(), + sd_peer_get_session(), + sd_peer_get_unit(), + sd_peer_get_user_unit(), + sd_peer_get_owner_uid(), + sd_peer_get_machine_name() and + sd_peer_get_slice() interfaces are + available as a shared library, which can be compiled + and linked to with the + libelogind pkg-config1 + file. + + Note that the login session identifier as + returned by sd_pid_get_session() + is completely unrelated to the process session + identifier as returned by + getsid2. + + + + See Also + + + systemd1, + sd-login3, + sd_session_is_active3, + getsid2, + systemd.slice5, + systemd-machined.service8 + +