Provided by: util-linux-locales_2.39.3-9ubuntu6.3_all bug

NOM

       flock - Gérer des verrous depuis des scripts d'interpréteur

SYNOPSIS

       flock [options] fichier|répertoire commande [arguments]

       flock [options] fichier|répertoire -c commande

       flock [options] numéro

DESCRIPTION

       Cet utilitaire gère les verrous flock(2) à partir de scripts d’interpréteur ou de la ligne de commande.

       Les première et deuxième formes précédentes enveloppent l’exécution d’une commande par un verrou, de
       façon similaire à su(1) ou newgrp(1). Elles verrouillent soit le fichier, soit le répertoire indiqué, qui
       est créé (en supposant que vous ayez les droits adéquats) s’il n’existe pas déjà. Par défaut, si le
       verrou ne peut pas être obtenu immédiatement, flock attend jusqu’à ce que le verrou soit disponible.

       La troisième forme utilise un fichier ouvert par son numéro de descripteur de fichier. Consultez les
       exemples suivants montrant comment l’utiliser.

OPTIONS

       -c, --command commande
           Passer une seule commande, sans argument, à l’interpréteur de commandes avec -c.

       -E, --conflict-exit-code numéro
           Le code de retour utilisé quand l’option -n est utilisée et que le verrou en conflit existe, ou que
           l’option -w est utilisée et que le délai est atteint. La valeur par défaut est 1. Le nombre doit être
           compris entre 0 et 255.

       -F, --no-fork
           Ne pas forker avant d’exécuter commande. Pendant l’exécution, le processus flock est remplacé par
           commande qui garde le verrou. Cette option est incompatible avec --close, sans quoi plus rien ne
           conserverait le verrou.

       -e, -x, --exclusive
           Obtenir un verrou exclusif, parfois appelé verrou en écriture. C’est l’option par défaut.

       -n, --nb, --nonblock
           Échouer plutôt qu’attendre si le verrou ne peut pas être obtenu immédiatement. Consultez l’option -E
           pour le code de retour utilisé.

       -o, --close
           Fermer le descripteur de fichier sur lequel le verrou est maintenu avant l’exécution de commande.
           C’est utile si commande lance un processus enfant qui ne devrait pas détenir le verrou.

       -s, --shared
           Obtenir un verrou partagé, parfois appelé verrou en lecture.

       -u, --unlock
           Supprimer un verrou. Ce n’est généralement pas nécessaire, puisqu’un verrou est automatiquement
           supprimé lorsque le fichier est fermé. Cependant, il peut être nécessaire dans des cas particuliers,
           par exemple si le groupe de commandes inclus a engendré un processus en arrière-plan qui ne devrait
           pas détenir le verrou.

       -w, --wait, --timeout délai
           Échouer si le verrou ne peut pas être obtenu en délai secondes. Les valeurs en fractions décimales
           sont permises. Consultez l’option -E pour le code de retour utilisé. Un délai nul est interprété
           comme --nonblock.

       --verbose
           Renvoyer la durée d’acquisition du verrou ou la raison pour laquelle il n’a pas pu être obtenu.

       -h, --help
           Afficher l’aide-mémoire puis quitter.

       -V, --version
           Afficher le numéro de version et quitter.

CODE DE RETOUR

       La commande utilise les valeurs de code de retour de <sysexits.h> pour tout, sauf avec les options -n ou
       -w, qui signalent un échec d’obtention du verrou avec un code de retour donné par l’option -E, ou avec 1
       par défaut. Le code de retour donné par -E doit être 0 et 255.

       En utilisant la variante commande et si l’exécution de l’enfant a fonctionné, le code de retour est celui
       de la commande enfant.

NOTES

       flock does not detect deadlock. See flock(2) for details.

       Some file systems (e. g. NFS and CIFS) have a limited implementation of flock(2) and flock may always
       fail. For details see flock(2), nfs(5) and mount.cifs(8). Depending on mount options, flock can always
       fail there.

EXEMPLES

       Notez que « shell> » dans les exemples ci-dessous est une invite de commande.

       shell1> flock /tmp -c cat; shell2> flock -w .007 /tmp -c echo; /bin/echo $?
           Set exclusive lock to directory /tmp and the second command will fail.

       shell1> flock -s /tmp -c cat; shell2> flock -s -w .007 /tmp -c echo; /bin/echo $?
           Set shared lock to directory /tmp and the second command will not fail. Notice that attempting to get
           exclusive lock with second command would fail.

       shell> flock -x fichier_verrou_local echo 'a b c'
           Récupérer le verrou exclusif « fichier_verrou_local » avant d’exécuter echo 'a b c'.

       (; flock -n 9 || exit 1; # ... commandes exécutées sous un verrou ...; ) 9>/var/lock/mon_fichier_verrou
           Cette forme est pratique dans les scripts d’interpréteur de commandes. Le mode utilisé pour ouvrir le
           fichier n’est pas important pour flock ; utiliser > ou >> permet de créer le fichier de verrouillage
           s’il n’existe pas déjà, cependant, le droit d’écriture est nécessaire. En utilisant <, le fichier
           doit déjà exister, mais seul le droit de lecture est nécessaire.

       [ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -en "$0" "$0" "$@" || :
           This is useful boilerplate code for shell scripts. Put it at the top of the shell script you want to
           lock and it’ll automatically lock itself on the first run. If the environment variable $FLOCKER is
           not set to the shell script that is being run, then execute flock and grab an exclusive non-blocking
           lock (using the script itself as the lock file) before re-execing itself with the right arguments. It
           also sets the FLOCKER environment variable to the right value so it doesn’t run again.

       shell> exec 4<>/var/lock/mon_fichier_verrou; shell> flock -n 4
           This form is convenient for locking a file without spawning a subprocess. The shell opens the lock
           file for reading and writing as file descriptor 4, then flock is used to lock the descriptor.

AUTEURS

       H. Peter Anvin <hpa@zytor.com>

COPYRIGHT

       Copyright © 2003-2006 H. Peter Anvin. C’est un logiciel libre ; consultez les sources pour les conditions
       de copie. Il n’y a AUCUNE garantie ; même pas de VALEUR MARCHANDE ou d’ADÉQUATION À UNE UTILISATION
       PARTICULIÈRE.

VOIR AUSSI

       flock(2)

SIGNALER DES BOGUES

       Pour signaler un bogue, utilisez le gestionnaire de bogues sur
       https://github.com/util-linux/util-linux/issues.

DISPONIBILITÉ

       La commande flock fait partie du paquet util-linux, elle est disponible sur l’archive du noyau Linux
       <https://www.kernel.org/pub/linux/utils/util-linux/>.

util-linux 2.39.3                                  2025-06-05                                           FLOCK(1)