[systemd-devel] timer unit doesn't fire again if service takes too long

Albert Strasheim fullung at gmail.com
Thu Feb 14 00:47:32 PST 2013


Hello all

We have some systems running systemd-37-25.fc16.x86_64.

We have an issue where a timer unit doesn't fire again if its service
runs for too long.

We have a logrotate.timer unit that looks like this:

[Timer]
OnActiveSec=10 m
OnUnitActiveSec=10 m

[Install]
WantedBy=multi-user.target

and a logrotate.service that looks like this:

[Unit]
Description=Run logrotate

[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/usr/sbin/logrotate -v /etc/logrotate.conf
StandardInput=null
StandardOutput=syslog
StandardError=inherit
SyslogIdentifier=logrotate
SyslogFacility=local0
SyslogLevel=info
SyslogLevelPrefix=true

[Install]
WantedBy=multi-user.target

We rotate logs quite regularly because we have some that grow quite
quickly. From time to time, logrotate will do some work (gziping logs)
that takes much more than 10 minutes.

We've found that in this case, the timer never fires the service
again. It seems that it should run it again next time the interval is
up.

Unfortunately I don't have a newer systemd setup to test with right
now, but maybe someone wants to take a look to see if they think this
could still be a problem in the latest code?

F16 is EOL today so we'll upgrade systemd at some point. Hopefully
there's a fix waiting for us.

Cheers

Albert


More information about the systemd-devel mailing list