Re: "semaphore" for .timer-triggered run

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Out of curiosity, and to check if I understand the systemd concepts properly...

assuming the two units to lock are both systemd services and are both of type oneshot, would a simple After= of one on the other be enough to guarantee they never run together ?

Le mar. 27 août 2019 à 12:56, Lennart Poettering <lennart@xxxxxxxxxxxxxx> a écrit :
On Fr, 02.08.19 13:24, Johannes Ernst (johannes.ernst@xxxxxxxxx) wrote:

> I have a oneshot .service (certbot) that is run by its .timer with:
>
> _OnCalendar_=daily
> RandomizedDelaySec=1day
>
> I also have a sometimes long-running script that may modify the same
> data. So the script and the oneshot service should never run at the
> same time.
>
> Is there a good systemd pattern for some kind of semaphore-like
> thing that will delay the execution of the oneshot service and try
> again when the script is done running?
>
> I could skip execution, but then I miss an entire day until the
> service is run again -- I’d prefer it if it tried again a few
> minutes later. Or I could poll for some flag before running the main
> part of the service. Wondering whether there something more
> systemd-native.

Maybe change the service program invoked by the timer unit to use file
locking of some kind early on. I mean, if you have shared data on disk
and want to synchronize access to it then a file lock is the concept
of choice really. If this is a proper program (i.e. not a shell
script) maybe just use a BSD file lock (flock(2)) on the top-level
directory you store your data in. If these are shell scripts you
should be able to use util-linux' flock tool, you could even prefix
your ExecStart= line with that if you want.

But no, systemd does not provide any mechanism to do file locking for
you.

Lennart

--
Lennart Poettering, Berlin
_______________________________________________
systemd-devel mailing list
systemd-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


--
SMILE 

20 rue des Jardins
92600 Asnières-sur-Seine

Jérémy ROSEN
Architecte technique

email jeremy.rosen@xxxxxxxx 
phone  +33 6 88 25 87 42 
url http://www.smile.eu

Twitter Facebook LinkedIn Github

Découvrez l’univers Smile, rendez-vous sur smile.eu
_______________________________________________
systemd-devel mailing list
systemd-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux