: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]]
