On 28.10.2021 16:04, Olaf Hering wrote: > There is A.timer and its A.service, and B.timer and B.service. > Both A and B do not know about each other per default. > Both timers fire in their own cadence. > Both services have their unpredictable time until they finish. > So it may happen that A.service is started while B.service is still active. > > But, unfortunately both services may touch the same files while they run. > > Does systemd have a way to serialize execution of such units, so that starting of A.service is delayed until B.service is done, and via versa? > Not that I am aware of. Similar questions (or requests) came up in the past. > Before=/After= may not apply, at least the docs say nothing about timer driven units. > It has nothing to do with timer. After/Before are only effective if both start jobs are queued for execution. If one unit is already started, then After/Before becomes noop. If A has "After: B" and B has "After: A" and both are attempted to be started, it is a loop and systemd will drop one of conditions. How start of these units is triggered is irrelevant. > > I might be able to add some locking to A.service and B.service with some creative ExecStartPre/Post= in A.service.d/lock.conf ... > > > Olaf >