focal (1) flock.1.gz

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