Provided by: manpages-fr-extra_20151231_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, --commande 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.

       -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  fils  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.

       -V, --version
              Afficher les informations sur la version et quitter.

       -h, --help
              Afficher un texte d'aide puis quitter.

EXEMPLES

       shell1> flock /tmp -c cat
       shell2> flock -w .007 /tmp -c echo; /bin/echo $?
              Définir un verrou exclusif sur le répertoire /tmp et la seconde commande échouera.

       shell1> flock -s /tmp -c cat
       shell2> flock -s -w .007 /tmp -c echo; /bin/echo $?
              Définir un verrou partagé sur le répertoire /tmp et la seconde commande  n’échouera
              pas.  Remarquez  que  la  tentative  d’obtenir  un  verrou exclusif avec la seconde
              commande aurait échoué.

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

       (
         flock -n 9 || exit 1
         # … commandes exécutées sous un verrou …
       ) 9>/var/lock/monfichierverrou
              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" "$@" || :
              C’est  un  code  passe-partout  utile pour les scripts d’interpréteur. Placez-le au
              début du script d’interpréteur que vous voulez verrouiller et  il  se  verrouillera
              lui-même   automatiquement   lors   de   la  première  exécution.  Si  la  variable
              d’environnement $FLOCKER n’est pas définie pour le script d’interpréteur  en  cours
              d’exécution,  alors  flock  est  exécuté  et  un  verrou  non bloquant exclusif est
              récupéré (en utilisant le script lui-même comme fichier de verrouillage) avant  que
              le   script   ne  s’exécute  de  nouveau  avec  les  bons  arguments.  La  variable
              d’environnement FLOCKER est aussi définie à la bonne valeur pour que le  script  ne
              s’exécute pas de nouveau.

CODES DE RETOUR

       La  commande utilise les valeurs de retour de sysexits.h pour tout, sauf quand les options
       -n ou -w sont utilisées. Elles signalent un échec d’obtention du verrou avec une valeur de
       retour donnée par l’option -E ou 1 par défaut.

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

AUTEUR

       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)

DISPONIBILITÉ

       La commande flock fait partie du paquet util-linux, elle est disponible sur  l’archive  du
       noyau Linux ⟨ftp://ftp.kernel.org/pub/linux/utils/util-linux/⟩.

TRADUCTION

       Cette  page de manuel a été traduite et est maintenue par Lyes Zemmouche et les membres de
       la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute  erreur
       de traduction par un rapport de bogue sur le paquet manpages-fr-extra.