diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-10-15 12:58:17 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-10-15 12:58:17 +0200 |
commit | e18992ad4f21d300b6dc46d706227819fd3c5d6a (patch) | |
tree | 612411e91377bbdc515e6d89484a337d5ab07b47 /src | |
parent | 19833db683c1e197718f00d1d5cb4827ee7897d8 (diff) | |
parent | 8d2bc8e5fd023a24684446f0057440e3fd0d79bf (diff) |
Merge pull request #1574 from evverx/run-timer-slack-nsec
systemd-run can launch units with TimerSlackNSec
Diffstat (limited to 'src')
-rw-r--r-- | src/core/dbus-execute.c | 15 | ||||
-rw-r--r-- | src/shared/bus-util.c | 9 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c index 8b1f830476..436229330e 100644 --- a/src/core/dbus-execute.c +++ b/src/core/dbus-execute.c @@ -1171,6 +1171,21 @@ int bus_exec_context_set_transient_property( return 1; + } else if (streq(name, "TimerSlackNSec")) { + + nsec_t n; + + r = sd_bus_message_read(message, "t", &n); + if (r < 0) + return r; + + if (mode != UNIT_CHECK) { + c->timer_slack_nsec = n; + unit_write_drop_in_private_format(u, mode, name, "TimerSlackNSec=" NSEC_FMT "\n", n); + } + + return 1; + } else if (rlimit_from_string(name) >= 0) { uint64_t rl; rlim_t x; diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c index 3a45ac4064..a5d6edbba9 100644 --- a/src/shared/bus-util.c +++ b/src/shared/bus-util.c @@ -1655,7 +1655,16 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen } r = sd_bus_message_append(m, "v", "t", u); + } else if (streq(field, "TimerSlackNSec")) { + nsec_t n; + r = parse_nsec(eq, &n); + if (r < 0) { + log_error("Failed to parse %s value %s", field, eq); + return -EINVAL; + } + + r = sd_bus_message_append(m, "v", "t", n); } else { log_error("Unknown assignment %s.", assignment); return -EINVAL; |