X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=man%2Fsd_pid_get_session.xml;h=f85b413f0824d9d64b3611733ea203f093b4aa9d;hb=76cc80f42e53215b9039ca99dd35687c7518880a;hp=fac072a4c00c54f267d6a7d1f5fb0bee57984c85;hpb=2f19b8e572ecc317846621d6429a535e49d29917;p=elogind.git diff --git a/man/sd_pid_get_session.xml b/man/sd_pid_get_session.xml index fac072a4c..f85b413f0 100644 --- a/man/sd_pid_get_session.xml +++ b/man/sd_pid_get_session.xml @@ -1,31 +1,31 @@ - + sd_pid_get_session - systemd + elogind @@ -44,25 +44,21 @@ 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_pid_get_cgroup 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 + sd_peer_get_cgroup + Determine session, unit, owner of a session, + container/VM or slice of a specific PID or socket + peer - #include <systemd/sd-login.h> + #include <elogind/sd-login.h> int sd_pid_get_session @@ -70,18 +66,6 @@ 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 @@ -95,9 +79,9 @@ - int sd_pid_get_slice + int sd_pid_get_cgroup pid_t pid - char **slice + char **cgroup @@ -106,18 +90,6 @@ 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 @@ -131,9 +103,9 @@ - int sd_peer_get_slice + int sd_peer_get_cgroup int fd - char **slice + char **cgroup @@ -148,40 +120,20 @@ 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 + being part of a login session, this function will fail with + -ENODATA. 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 + determine the Unix UID (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, whereas 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. + of a user, this function will fail with -ENODATA. sd_pid_get_machine_name() may be used to determine the name of the VM or container is a member of. The @@ -189,29 +141,33 @@ 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. + call after use. For processes not part of a VM or containers, this + function fails with -ENODATA. + + sd_pid_get_cgroup() returns the control + group path of the specified process, relative to the root of the + hierarchy. Returns the path without trailing slash, except for + processes located in the root control group, where "/" is + returned. To find the actual control group path in the file system, + the returned path needs to be prefixed with + /sys/fs/cgroup/ (if the unified control group + setup is used), or + /sys/fs/cgroup/HIERARCHY/ + (if the legacy multi-hierarchy control group setup is used). 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 + sd_peer_get_cgroup() calls operate similar to their PID counterparts, but operate on a connected AF_UNIX socket - and retrieve information about the connected peer process. + and retrieve information about the connected peer process. Note + that these fields are retrieved via /proc, + and hence are not suitable for authorization purposes, as they are + subject to races. @@ -230,21 +186,35 @@ - -ENXIO + -ESRCH - Given field is not specified for the described - process or peer. + The specified PID does not refer to a running + process. - -ESRCH + -BADF - The specified PID does not refer to a running - process. + The specified socket file descriptor was + invalid. + + + + -ENODATA + + The given field is not specified for the described + process or peer. + + -EINVAL + + An input parameter was invalid (out of range, + or NULL, where that is not accepted). + + -ENOMEM @@ -257,20 +227,14 @@ 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 + sd_peer_get_machine_name(), + 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 @@ -284,12 +248,12 @@ See Also - systemd1, + elogind8, sd-login3, sd_session_is_active3, getsid2, - systemd.slice5, - systemd-machined.service8 + elogind.slice5, + elogind-machined.service8