diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-07-12 02:25:42 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-07-12 03:07:01 +0200 |
commit | b708e7cea941538bfd5e20ce0a723c19b7da7d1d (patch) | |
tree | 8d98112fa0c7c4432bd2058eb1e087abad0e0dc5 /src/systemctl.c | |
parent | f1dfb62962fd25c1fba9d9479cb5df2d23e6712d (diff) |
execute: optionally ignore return status of invoked commands
Diffstat (limited to 'src/systemctl.c')
-rw-r--r-- | src/systemctl.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/systemctl.c b/src/systemctl.c index d1892e4ae0..45e900c5fe 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -933,6 +933,8 @@ typedef struct ExecStatusInfo { char *path; char **argv; + bool ignore; + usec_t start_timestamp; usec_t exit_timestamp; pid_t pid; @@ -957,6 +959,7 @@ static int exec_status_info_deserialize(DBusMessageIter *sub, ExecStatusInfo *i) unsigned n; uint32_t pid; int32_t code, status; + dbus_bool_t ignore; assert(i); assert(i); @@ -1002,6 +1005,7 @@ static int exec_status_info_deserialize(DBusMessageIter *sub, ExecStatusInfo *i) } if (!dbus_message_iter_next(&sub2) || + bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_BOOLEAN, &ignore, true) < 0 || bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_UINT64, &start_timestamp, true) < 0 || bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_UINT64, &exit_timestamp, true) < 0 || bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_UINT32, &pid, true) < 0 || @@ -1009,6 +1013,7 @@ static int exec_status_info_deserialize(DBusMessageIter *sub, ExecStatusInfo *i) bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_INT32, &status, false) < 0) return -EIO; + i->ignore = ignore; i->start_timestamp = (usec_t) start_timestamp; i->exit_timestamp = (usec_t) exit_timestamp; i->pid = (pid_t) pid; @@ -1535,10 +1540,11 @@ static int print_property(const char *name, DBusMessageIter *iter) { t = strv_join(info.argv, " "); - printf("%s={ path=%s ; argv[]=%s; start_time=[%s] ; stop_time=[%s] ; pid=%u ; code=%s ; status=%i%s%s }\n", + printf("%s={ path=%s ; argv[]=%s ; ignore=%s ; start_time=[%s] ; stop_time=[%s] ; pid=%u ; code=%s ; status=%i%s%s }\n", name, strna(info.path), strna(t), + yes_no(info.ignore), strna(format_timestamp(timestamp1, sizeof(timestamp1), info.start_timestamp)), strna(format_timestamp(timestamp2, sizeof(timestamp2), info.exit_timestamp)), (unsigned) info. pid, |