On Thu, 06.11.14 19:47, Michael Chapman (m...@very.puzzling.org) wrote:
Makes sense! Applied!
A timer configured with OnActiveSec will start its associated unit again
if the timer is stopped, then started. However, if the timer unit is
restarted -- with systemctl restart, say -- this does not occur.
This commit ensures that TIMER_ACTIVE timers are re-enabled whenever the
timer is started, even if that's within a restart job.
---
src/core/timer.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/src/core/timer.c b/src/core/timer.c
index a3713e2..5c4e9f9 100644
--- a/src/core/timer.c
+++ b/src/core/timer.c
@@ -521,6 +521,7 @@ fail:
static int timer_start(Unit *u) {
Timer *t = TIMER(u);
+TimerValue *v;
assert(t);
assert(t-state == TIMER_DEAD || t-state == TIMER_FAILED);
@@ -530,6 +531,11 @@ static int timer_start(Unit *u) {
t-last_trigger = DUAL_TIMESTAMP_NULL;
+/* Reenable all timers that depend on unit activation time */
+LIST_FOREACH(value, v, t-values)
+if (v-base == TIMER_ACTIVE)
+v-disabled = false;
+
if (t-stamp_path) {
struct stat st;
--
2.1.0
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Lennart
--
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel