From: Lennart Poettering Date: Wed, 4 Jan 2012 14:35:30 +0000 (+0100) Subject: journald: store _SYSTEMD_UNIT= instead of _SYSTEMD_SERVICE= field, since processes... X-Git-Tag: v38~76 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94fb446e55babb713fb24850455627acf30d999b;p=systemd journald: store _SYSTEMD_UNIT= instead of _SYSTEMD_SERVICE= field, since processes might also be related to mount, swap or socket units, not just services --- diff --git a/Makefile.am b/Makefile.am index 6c0fd055..21cac4e5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1912,7 +1912,7 @@ MANPAGES_ALIAS += \ man/sd_session_get_uid.3 \ man/sd_session_get_seat.3 \ man/sd_pid_get_owner_uid.3 \ - man/sd_pid_get_service.3 \ + man/sd_pid_get_unit.3 \ man/sd_uid_is_on_seat.3 \ man/sd_uid_get_sessions.3 \ man/sd_uid_get_seats.3 \ @@ -1927,7 +1927,7 @@ man/sd_login_monitor_get_fd.3: man/sd_login_monitor_new.3 man/sd_session_get_uid.3: man/sd_session_is_active.3 man/sd_session_get_seat.3: man/sd_session_is_active.3 man/sd_pid_get_owner_uid.3: man/sd_pid_get_session.3 -man/sd_pid_get_service.3: man/sd_pid_get_session.3 +man/sd_pid_get_unit.3: man/sd_pid_get_session.3 man/sd_uid_is_on_seat.3: man/sd_uid_get_state.3 man/sd_uid_get_sessions.3: man/sd_uid_get_state.3 man/sd_uid_get_seats.3: man/sd_uid_get_state.3 diff --git a/man/sd_pid_get_session.xml b/man/sd_pid_get_session.xml index 4086c5a8..bd958046 100644 --- a/man/sd_pid_get_session.xml +++ b/man/sd_pid_get_session.xml @@ -44,7 +44,7 @@ sd_pid_get_session - sd_pid_get_service + sd_pid_get_unit sd_pid_get_owner_uid Determine session, service or owner of a session of a specific PID @@ -60,9 +60,9 @@ - int sd_pid_get_service + int sd_pid_get_unit pid_t pid - char** service + char** unit @@ -90,15 +90,16 @@ free3 call after use. - sd_pid_get_service() may be - used to determine the system service identifier of a - process identified by the specified process - identifier. The service name is a short string, - suitable for usage in file system paths. Note that not - all processes are part of a service (e.g. user - processes, or kernel threads). For processes not being - part of a system service this function will fail. The - returned string needs to be freed with the libc + 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. @@ -126,7 +127,7 @@ Notes The sd_pid_get_session(), - sd_pid_get_service(), and + 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 diff --git a/src/journal/journald.c b/src/journal/journald.c index 47fe6edb..b029ab97 100644 --- a/src/journal/journald.c +++ b/src/journal/journald.c @@ -431,7 +431,7 @@ static void dispatch_message_real(Server *s, *comm = NULL, *cmdline = NULL, *hostname = NULL, *audit_session = NULL, *audit_loginuid = NULL, *exe = NULL, *cgroup = NULL, *session = NULL, - *owner_uid = NULL, *service = NULL; + *owner_uid = NULL, *unit = NULL; char idbuf[33]; sd_id128_t id; @@ -515,12 +515,12 @@ static void dispatch_message_real(Server *s, IOVEC_SET_STRING(iovec[n++], session); } - if (sd_pid_get_service(ucred->pid, &t) >= 0) { - service = strappend("_SYSTEMD_SERVICE=", t); + if (sd_pid_get_unit(ucred->pid, &t) >= 0) { + unit = strappend("_SYSTEMD_UNIT=", t); free(t); - if (service) - IOVEC_SET_STRING(iovec[n++], service); + if (unit) + IOVEC_SET_STRING(iovec[n++], unit); } if (sd_pid_get_owner_uid(ucred->uid, &owner) >= 0) @@ -596,7 +596,7 @@ retry: free(cgroup); free(session); free(owner_uid); - free(service); + free(unit); } static void dispatch_message(Server *s, diff --git a/src/journal/sd-journal.h b/src/journal/sd-journal.h index d7e2528a..87da17dd 100644 --- a/src/journal/sd-journal.h +++ b/src/journal/sd-journal.h @@ -35,7 +35,6 @@ * - OR of matches is borked... * - extend hash tables table as we go * - accelerate looking for "all hostnames" and suchlike. - * - hookup with systemctl * - handle incomplete header * * - local deserializer diff --git a/src/login/libsystemd-login.sym b/src/login/libsystemd-login.sym index bac46f40..15e505e8 100644 --- a/src/login/libsystemd-login.sym +++ b/src/login/libsystemd-login.sym @@ -36,5 +36,5 @@ local: LIBSYSTEMD_LOGIN_38 { global: - sd_pid_get_service; + sd_pid_get_unit; } LIBSYSTEMD_LOGIN_31; diff --git a/src/login/sd-login.c b/src/login/sd-login.c index e857ae08..8893b1de 100644 --- a/src/login/sd-login.c +++ b/src/login/sd-login.c @@ -121,11 +121,11 @@ _public_ int sd_pid_get_session(pid_t pid, char **session) { return 0; } -_public_ int sd_pid_get_service(pid_t pid, char **service) { +_public_ int sd_pid_get_unit(pid_t pid, char **unit) { int r; char *cgroup, *p; - if (!service) + if (!unit) return -EINVAL; r = pid_get_cgroup(pid, NULL, &cgroup); @@ -144,7 +144,7 @@ _public_ int sd_pid_get_service(pid_t pid, char **service) { if (!p) return -ENOMEM; - *service = p; + *unit = p; return 0; } diff --git a/src/login/sd-login.h b/src/login/sd-login.h index 1d8a55e9..00de6716 100644 --- a/src/login/sd-login.h +++ b/src/login/sd-login.h @@ -53,9 +53,9 @@ 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 service name from PID. This will return an error for - * non-service processes. */ -int sd_pid_get_service(pid_t, char **service); +/* Get systemd unit (i.e. service) name from PID. This will return an + * error for non-service processes. */ +int sd_pid_get_unit(pid_t, char **unit); /* Get state from uid. Possible states: offline, lingering, online, active */ int sd_uid_get_state(uid_t uid, char**state); diff --git a/src/logs-show.c b/src/logs-show.c index d178f95f..e28fe8fa 100644 --- a/src/logs-show.c +++ b/src/logs-show.c @@ -359,7 +359,7 @@ int show_journal_by_service( if (!prefix) prefix = ""; - if (asprintf(&m, "_SYSTEMD_SERVICE=%s", service) < 0) { + if (asprintf(&m, "_SYSTEMD_UNIT=%s", service) < 0) { r = -ENOMEM; goto finish; }