summaryrefslogtreecommitdiff
path: root/src/systemctl.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-07-12 02:25:42 +0200
committerLennart Poettering <lennart@poettering.net>2010-07-12 03:07:01 +0200
commitb708e7cea941538bfd5e20ce0a723c19b7da7d1d (patch)
tree8d98112fa0c7c4432bd2058eb1e087abad0e0dc5 /src/systemctl.c
parentf1dfb62962fd25c1fba9d9479cb5df2d23e6712d (diff)
execute: optionally ignore return status of invoked commands
Diffstat (limited to 'src/systemctl.c')
-rw-r--r--src/systemctl.c8
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,