sd_pid_get_session.xml revision cb07866b1b7c11e687a322d70dd9f9d73bbbe488
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering<?xml version='1.0'?> <!--*-nxml-*-->
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering<!--
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering This file is part of systemd.
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering Copyright 2010 Lennart Poettering
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering systemd is free software; you can redistribute it and/or modify it
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering under the terms of the GNU Lesser General Public License as published by
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering the Free Software Foundation; either version 2.1 of the License, or
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering (at your option) any later version.
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering systemd is distributed in the hope that it will be useful, but
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering WITHOUT ANY WARRANTY; without even the implied warranty of
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering Lesser General Public License for more details.
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering
3ffd4af22052963e7a29431721ee204e634bea75Lennart Poettering You should have received a copy of the GNU Lesser General Public License
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering along with systemd; If not, see <http://www.gnu.org/licenses/>.
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering-->
3ffd4af22052963e7a29431721ee204e634bea75Lennart Poettering
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering<refentry id="sd_pid_get_session">
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <refentryinfo>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <title>sd_pid_get_session</title>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <productname>systemd</productname>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <authorgroup>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <author>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <contrib>Developer</contrib>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <firstname>Lennart</firstname>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <surname>Poettering</surname>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <email>lennart@poettering.net</email>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering </author>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering </authorgroup>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering </refentryinfo>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <refmeta>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <refentrytitle>sd_pid_get_session</refentrytitle>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <manvolnum>3</manvolnum>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering </refmeta>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <refnamediv>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <refname>sd_pid_get_session</refname>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <refname>sd_pid_get_unit</refname>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <refname>sd_pid_get_owner_uid</refname>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <refpurpose>Determine session, service or owner of a session of a specific PID</refpurpose>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering </refnamediv>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <refsynopsisdiv>
edce2aed3aa93b84f7b4c70412bdb665da2977b0Lennart Poettering <funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_pid_get_session</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char** <parameter>session</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_unit</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char** <parameter>unit</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_owner_uid</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>uid_t* <parameter>uid</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><function>sd_pid_get_session()</function> 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
<citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_pid_get_unit()</function> 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
<citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_pid_get_owner_uid()</function> 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
<function>sd_pid_get_session()</function> will
fail. For processes not being part of a login session
and not being a shared process of a user this function
will fail.</para>
<para>If the <literal>pid</literal> paramater of any
of these functions is passed as 0 the operation is
executed for the calling process.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<para>On success these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<para>The <function>sd_pid_get_session()</function>,
<function>sd_pid_get_pid()</function>, and
<function>sd_pid_get_owner_uid()</function> interfaces
are available as shared library, which can be compiled
and linked to with the
<literal>libsystemd-login</literal>
<citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
<para>Note that the login session identifier as
returned by <function>sd_pid_get_session()</function>
is completely unrelated to the process session
identifier as returned by
<citerefentry><refentrytitle>getsid</refentrytitle><manvolnum>2</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_session_is_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>getsid</refentrytitle><manvolnum>2</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>