Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
systemd
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
steam
systemd
Commits
97e13058
Commit
97e13058
authored
Apr 15, 2013
by
Lennart Poettering
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sd-login: add a sd_pid_get_user_unit() call
parent
6c03089c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
49 additions
and
10 deletions
+49
-10
man/sd_pid_get_session.xml
man/sd_pid_get_session.xml
+26
-8
src/login/libsystemd-login.sym
src/login/libsystemd-login.sym
+5
-0
src/login/sd-login.c
src/login/sd-login.c
+11
-0
src/systemd/sd-login.h
src/systemd/sd-login.h
+7
-2
No files found.
man/sd_pid_get_session.xml
View file @
97e13058
...
...
@@ -45,6 +45,7 @@
<refnamediv>
<refname>
sd_pid_get_session
</refname>
<refname>
sd_pid_get_unit
</refname>
<refname>
sd_pid_get_user_unit
</refname>
<refname>
sd_pid_get_owner_uid
</refname>
<refpurpose>
Determine session, service or owner of a session of a specific PID
</refpurpose>
</refnamediv>
...
...
@@ -65,6 +66,12 @@
<paramdef>
char**
<parameter>
unit
</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>
int
<function>
sd_pid_get_user_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>
...
...
@@ -91,18 +98,28 @@
call after use.
</para>
<para><function>
sd_pid_get_unit()
</function>
may be
used to determine the systemd unit (i.e. system
used to determine the systemd
system
unit (i.e. system
service) identifier of a process identified by the
specified
process identifier. The unit name is a short
s
tring, suitable for usage in file system paths. Note
that not all processes are part of a
unit/service
specified
PID. The unit name is a short string,
s
uitable 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 unit/system
service this function will fail. The returned string
needs to be freed with the libc
processes not being part of a systemd system unit this
function will fail. (More specifically: this call will
not work for processes that are part of user units,
use
<function>
sd_pid_get_user_unit()
</function>
for
that.) 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_user_unit()
</function>
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
<function>
sd_pid_get_unit()
</function>
but applies to
user units instead of system units.
</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
...
...
@@ -131,7 +148,8 @@
<title>
Notes
</title>
<para>
The
<function>
sd_pid_get_session()
</function>
,
<function>
sd_pid_get_pid()
</function>
, and
<function>
sd_pid_get_unit()
</function>
,
<function>
sd_pid_get_user_unit()
</function>
, and
<function>
sd_pid_get_owner_uid()
</function>
interfaces
are available as shared library, which can be compiled
and linked to with the
...
...
src/login/libsystemd-login.sym
View file @
97e13058
...
...
@@ -64,3 +64,8 @@ global:
sd_login_monitor_get_events;
sd_login_monitor_get_timeout;
} LIBSYSTEMD_LOGIN_198;
LIBSYSTEMD_LOGIN_202 {
global:
sd_pid_get_user_unit;
} LIBSYSTEMD_LOGIN_201;
src/login/sd-login.c
View file @
97e13058
...
...
@@ -84,6 +84,17 @@ _public_ int sd_pid_get_unit(pid_t pid, char **unit) {
return
cg_pid_get_unit
(
pid
,
unit
);
}
_public_
int
sd_pid_get_user_unit
(
pid_t
pid
,
char
**
unit
)
{
if
(
pid
<
0
)
return
-
EINVAL
;
if
(
!
unit
)
return
-
EINVAL
;
return
cg_pid_get_user_unit
(
pid
,
unit
);
}
_public_
int
sd_pid_get_owner_uid
(
pid_t
pid
,
uid_t
*
uid
)
{
int
r
;
char
*
root
,
*
cgroup
,
*
p
,
*
cc
;
...
...
src/systemd/sd-login.h
View file @
97e13058
...
...
@@ -62,10 +62,15 @@ int sd_pid_get_session(pid_t pid, char **session);
* return an error for system processes. */
int
sd_pid_get_owner_uid
(
pid_t
pid
,
uid_t
*
uid
);
/* Get systemd unit (i.e. service) name from PID
. This will return an
* error for non-service processes. */
/* Get systemd unit (i.e. service) name from PID
, for system
*
services. This will return an
error for non-service processes. */
int
sd_pid_get_unit
(
pid_t
,
char
**
unit
);
/* Get systemd unit (i.e. service) name from PID, for user
* services. This will return an error for non-user-service
* processes. */
int
sd_pid_get_user_unit
(
pid_t
,
char
**
unit
);
/* Get state from uid. Possible states: offline, lingering, online, active, closing */
int
sd_uid_get_state
(
uid_t
uid
,
char
**
state
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment