if a systemd timer runs OnCalendar=hourly is there any way to tell it to run EVERY TIME regardless what happened in the previous runs (so to be sure backups will in face run and won't unexpectedly destroy everything you love)?
Those timers actually DO their jobs and do run, they just don't "restart" the backup service they are meant to activate, because that service still has the trigger state of being "activated" or "active" in case it is still running...
- To make it clear that the behavior is correct:
- What would you expect to happen when it actually did start another instance of the same service while the service in question was already running?
Would it be acceptable to have two backup services run at same time and thus overwrite each other's files at same time in parallel?
I think not right?
- You are trying to switch a light bulb "on" using button "B" while it already is "on" due to button "A", which of-course has no effect.
So...to make sure your timer "restarts" your service, make sure the backup service gets less than 1 hour time to finish and thus lose the active state...
See RuntimeMaxSec= in man systemd.service for the explanation of that.
Or use a longer timer if the backup does need more time, because a half or non finished backup is same as no backup at all right?
To give a better answer it would help if you posted the contents of those "Type=oneshot" backup service files, because i think they need changes anyhow.
cron.