Add a note about doing lock (mutex like) in bash.
This commit is contained in:
28
20220319131922-verrou_bash.org
Normal file
28
20220319131922-verrou_bash.org
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
:PROPERTIES:
|
||||||
|
:ID: 7052d327-0b67-40f6-a581-46df621cddb9
|
||||||
|
:mtime: 20220319133448
|
||||||
|
:ctime: 20220319131922
|
||||||
|
:END:
|
||||||
|
#+title: verrou-bash
|
||||||
|
|
||||||
|
* Verrou (lock) en sh
|
||||||
|
** Utilisation de /flock/
|
||||||
|
#+BEGIN_SRC shell
|
||||||
|
LOCK_PATH=/var/tmp/testlock.lock
|
||||||
|
exec 100>${LOCK_PATH} || exit 1
|
||||||
|
flock 100 || exit 1
|
||||||
|
|
||||||
|
echo "Doing some stuff…"
|
||||||
|
echo "Sleeping for 30 seconds…"
|
||||||
|
sleep 30
|
||||||
|
|
||||||
|
trap "rm -f ${LOCK_PATH}" EXIT
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Quelques options :
|
||||||
|
* ~-w 10~ pour définir un timeout à ~flock~, ici 10 secondes.
|
||||||
|
* ~-n~ pour que ~flock~ n'attende pas si le verrou est pris.
|
||||||
|
|
||||||
|
* Références
|
||||||
|
* [[https://www.putorius.net/lock-files-bash-scripts.html][Using Lock Files for Job Control in Bash Scripts - Putorius]]
|
||||||
|
* [[https://linux.die.net/man/1/flock][Man flock]]
|
Reference in New Issue
Block a user