From: Lennart Poettering Date: Thu, 20 Jan 2011 12:24:24 +0000 (+0100) Subject: systemctl: show process type along process exit codes X-Git-Tag: v17~17 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=0129173ab03994d21a21f9fc1f454faf62b97043;p=elogind.git systemctl: show process type along process exit codes --- diff --git a/src/systemctl.c b/src/systemctl.c index 2c8c2cf61..f93f2aa48 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -1615,6 +1615,8 @@ finish: } typedef struct ExecStatusInfo { + char *name; + char *path; char **argv; @@ -1632,6 +1634,7 @@ typedef struct ExecStatusInfo { static void exec_status_info_free(ExecStatusInfo *i) { assert(i); + free(i->name); free(i->path); strv_free(i->argv); free(i); @@ -1850,7 +1853,7 @@ static void print_status_info(UnitStatusInfo *i) { continue; t = strv_join(p->argv, " "); - printf("\t Process: %u (%s, code=%s, ", p->pid, strna(t), sigchld_code_to_string(p->code)); + printf("\t Process: %u %s=%s (code=%s, ", p->pid, p->name, strna(t), sigchld_code_to_string(p->code)); free(t); if (p->code == CLD_EXITED) { @@ -2083,6 +2086,11 @@ static int status_property(const char *name, DBusMessageIter *iter, UnitStatusIn if (!(info = new0(ExecStatusInfo, 1))) return -ENOMEM; + if (!(info->name = strdup(name))) { + free(info); + return -ENOMEM; + } + if ((r = exec_status_info_deserialize(&sub, info)) < 0) { free(info); return r;