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