On Thu, Jan 22, 2026 at 3:44 PM <[email protected]> wrote: > > On 2026-01-22 14:33 CET Barry Scott <[email protected]> wrote: > > > > > > > On 22 Jan 2026, at 12:24, [email protected] wrote: > > > > > > Hi, > > > > > > I have been running systemd for many years and in general find it > well-behaved and easy to reason about. > > > > > > One thing, that drives me nuts though is timer behavior. > > > > > > For context, this problem has persisted for years across many > different systemd version (currently 257) both as systemd and user timers. > > > > > > Today I hit the problem again even if I asked both chatgpt and claude > to help ensure it will not happen. > > > > > > The problem is this: > > > > > > I have a (user) service and a (user) timer, that fires that service > every day at 18:30. The timer is persistent=no. > > > Yesterday, for reasons, the service should not be run, so I stopped > the timer (around 15:00, if I remember correctly). > > > Today, I want the timer to trigger the service at normal runtime (i.e. > 18:30), and I start the timer here at around 13:00. > > > > > > Both being far away from the trigger time, I expected (and the llms > agreed) that it should wait til 18:30 to fire. As stated, persistent is > false, I specifically check that before activating the timer. > > > And then (the problem), it immediately fired the service as I started > the timer. And I won an hour's worth of cleanup :( > > > > > > Is that expected behavior, and if so, how do I get the behaviour that > I wish for? > > > > Can you post the timer unit code please. > > # /home/user/.config/systemd/user/redacted-service.timer > [Unit] > Description=Some redacted service name > > [Timer] > OnCalendar=18:30:00 > Persistent=false > > [Install] > WantedBy=default.target > > > How exactly did you stop and then start the timer? > > # Service has been running for 18+ months at this time already > # Yesterday, approx 3hr before timer firing > systemctl --user stop redacted-service.timer > > # Today approx 5 hours before timer firing > systemctl --user start redacted-service.timer
I *think* DeferReactivation= is supposed to avoid this?
