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?

Reply via email to