Provided by: manpages-fr_4.15.0-9_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 numéro 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 la version puis 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
       compris entre 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 ne détecte pas les blocages. Consultez flock(2) pour des détails.

       Certains systèmes de fichiers (par exemple NFS et CIFS) n'ont qu'une implémentation
       limitée de flock(2) et flock peut échouer systématiquement. Consultez flock(2), nfs(5) et
       mount.cifs(8) pour des détails. Selon les options de montage, flock peut y échouer tout le
       temps.

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 $?
           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/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" "$@" || :
           Voici 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.

       shell> exec 4<>/var/lock/mon_fichier_verrou; shell> flock -n 4
           Cette forme est pratique pour verrouiller un fichier sans engendrer un sous-processus.
           L'interpréteur ouvre le fichier verrou en lecture et en écriture en tant que
           descripteur de fichier 4, puis flock est utilisé pour verrouiller le descripteur.

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 envoyer un rapport de bogue, utilisez le système de gestion des problèmes à l'adresse
       https://github.com/util-linux/util-linux/issues.

DISPONIBILITÉ

       La commande flock fait partie du paquet util-linux, téléchargeable sur Linux Kernel
       Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

TRADUCTION

       La traduction française de cette page de manuel a été créée par Christophe Blaess
       <ccb@club-internet.fr>, Michel Quercia <quercia AT cal DOT enst DOT fr>, Thierry Vignaud
       <tvignaud@mandriva.com>, Frédéric Delanoy <delanoy_f@yahoo.com>, Thierry Vignaud
       <tvignaud@mandriva.com>, Christophe Sauthier <christophe@sauthier.com>, Sébastien
       Blanchet, Jérôme Perzyna <jperzyna@yahoo.fr>, Aymeric Nys <aymeric AT nnx POINT com>,
       Alain Portal <aportal@univ-montp2.fr>, Thomas Huriaux <thomas.huriaux@gmail.com>, Yves
       Rütschlé <l10n@rutschle.net>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien
       Cristau <jcristau@debian.org>, Philippe Piette <foudre-blanche@skynet.be>, Jean-Baka
       Domelevo-Entfellner <domelevo@gmail.com>, Nicolas Haller <nicolas@boiteameuh.org>, Sylvain
       Archenault <sylvain.archenault@laposte.net>, Valéry Perrin <valery.perrin.debian@free.fr>,
       Jade Alglave <jade.alglave@ens-lyon.org>, Nicolas François
       <nicolas.francois@centraliens.net>, Alexandre Kuoch <alex.kuoch@gmail.com>, Lyes Zemmouche
       <iliaas@hotmail.fr>, Florentin Duneau <fduneau@gmail.com>, Alexandre Normand
       <aj.normand@free.fr>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL
       <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General
       Public License version 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ concernant les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.