summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-01-20 13:24:24 +0100
committerLennart Poettering <lennart@poettering.net>2011-01-20 13:24:24 +0100
commit0129173ab03994d21a21f9fc1f454faf62b97043 (patch)
tree975f32b7776e9897aa3f52c4dab64f034bab50a7
parente2f3b44cfc8864bfea7c77ff4c383ce9b535f27e (diff)
systemctl: show process type along process exit codes
-rw-r--r--src/systemctl.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/systemctl.c b/src/systemctl.c
index 2c8c2cf61d..f93f2aa480 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;