'\" t .\" Title: flock .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.20 .\" Date: 2024-04-27 .\" Manual: Commandes de l'utilisateur .\" Source: util-linux 2.40 .\" Language: English .\" .TH "FLOCK" "1" "2024-04-27" "util\-linux 2.40" "Commandes de l\*(Aqutilisateur" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "NOM" flock \- Gérer des verrous depuis des scripts d\*(Aqinterpréteur .SH "SYNOPSIS" .sp \fBflock\fP [options] \fIfile\fP|\fIdirectory\fP \fIcommand\fP [\fIarguments\fP] .sp \fBflock\fP [options] \fIfile\fP|\fIdirectory\fP \fB\-c\fP \fIcommand\fP .sp \fBflock\fP [options] \fInumber\fP .SH "DESCRIPTION" .sp Cet utilitaire gère les verrous \fBflock\fP(2) à partir de scripts d\(cqinterpréteur ou de la ligne de commande. .sp Les première et deuxième formes précédentes enveloppent l\(cqexécution d\(cqune \fIcommande\fP par un verrou, de façon similaire à \fBsu\fP(1) ou \fBnewgrp\fP(1). Elles verrouillent soit le \fIfichier\fP, soit le \fIrépertoire\fP indiqué, qui est créé (en supposant que vous ayez les droits adéquats) s\(cqil n\(cqexiste pas déjà. Par défaut, si le verrou ne peut pas être obtenu immédiatement, \fBflock\fP attend jusqu’à ce que le verrou soit disponible. .sp La troisième forme utilise un fichier ouvert par son \fInuméro\fP de descripteur de fichier. Consultez les exemples suivants montrant comment l’utiliser. .SH "OPTIONS" .sp \fB\-c\fP, \fB\-\-command\fP \fIcommande\fP .RS 4 Passer une seule \fIcommande\fP, sans argument, à l’interpréteur de commandes avec \fB\-c\fP. .RE .sp \fB\-E\fP, \fB\-\-conflict\-exit\-code\fP \fInuméro\fP .RS 4 Le code de retour utilisé quand l’option \fB\-n\fP est utilisée et que le verrou en conflit existe, ou que l’option \fB\-w\fP est utilisée et que le délai est atteint. La valeur par défaut est \fB1\fP. Le \fInombre\fP doit être compris entre 0 et 255. .RE .sp \fB\-F\fP, \fB\-\-no\-fork\fP .RS 4 Ne pas forker avant d\(cqexécuter \fIcommande\fP. Pendant l\(cqexécution, le processus \fBflock\fP est remplacé par \fIcommande\fP qui garde le verrou. Cette option est incompatible avec \fB\-\-close\fP, sans quoi plus rien ne conserverait le verrou. .RE .sp \fB\-e\fP, \fB\-x\fP, \fB\-\-exclusive\fP .RS 4 Obtenir un verrou exclusif, parfois appelé verrou en écriture. C\(cqest l\(cqoption par défaut. .RE .sp \fB\-n\fP, \fB\-\-nb\fP, \fB\-\-nonblock\fP .RS 4 Échouer plutôt qu’attendre si le verrou ne peut pas être obtenu immédiatement. Consultez l’option \fB\-E\fP pour le code de retour utilisé. .RE .sp \fB\-o\fP, \fB\-\-close\fP .RS 4 Fermer le descripteur de fichier sur lequel le verrou est maintenu avant l\(cqexécution de \fIcommande\fP. C\(cqest utile si \fIcommande\fP lance un processus enfant qui ne devrait pas détenir le verrou. .RE .sp \fB\-s\fP, \fB\-\-shared\fP .RS 4 Obtenir un verrou partagé, parfois appelé verrou en lecture. .RE .sp \fB\-u\fP, \fB\-\-unlock\fP .RS 4 Supprimer un verrou. Ce n\(cqest généralement pas nécessaire, puisqu\(cqun 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. .RE .sp \fB\-w\fP, \fB\-\-wait\fP, \fB\-\-timeout\fP \fIdélai\fP .RS 4 Échouer si le verrou ne peut pas être obtenu en \fIdélai\fP secondes. Les valeurs en fractions décimales sont permises. Consultez l’option \fB\-E\fP pour le code de retour utilisé. Un \fIdélai\fP nul est interprété comme \fB\-\-nonblock\fP. .RE .sp \fB\-\-verbose\fP .RS 4 Renvoyer la durée d\(cqacquisition du verrou ou la raison pour laquelle il n\(cqa pas pu être obtenu. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 Afficher l’aide\-mémoire puis quitter. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 Afficher le numéro de version et quitter. .RE .SH "CODE DE RETOUR" .sp La commande utilise les valeurs de code de retour de pour tout, sauf avec les options \fB\-n\fP ou \fB\-w\fP, qui signalent un échec d’obtention du verrou avec un code de retour donné par l’option \fB\-E\fP, ou avec 1 par défaut. Le code de retour donné par \fB\-E\fP doit être 0 et 255. .sp En utilisant la variante \fIcommande\fP et si l’exécution de l’enfant a fonctionné, le code de retour est celui de la commande enfant. .SH "NOTES" .sp \fBflock\fP does not detect deadlock. See \fBflock\fP(2) for details. .sp Some file systems (e. g. NFS and CIFS) have a limited implementation of \fBflock\fP(2) and flock may always fail. For details see \fBflock\fP(2), \fBnfs\fP(5) and \fBmount.cifs\fP(8). Depending on mount options, flock can always fail there. .SH "EXEMPLES" .sp Notez que « shell> » dans les exemples ci\-dessous est une invite de commande. .sp shell1> flock /tmp \-c cat; shell2> flock \-w .007 /tmp \-c echo; /bin/echo $? .RS 4 Set exclusive lock to directory \fI/tmp\fP and the second command will fail. .RE .sp shell1> flock \-s /tmp \-c cat; shell2> flock \-s \-w .007 /tmp \-c echo; /bin/echo $? .RS 4 Set shared lock to directory \fI/tmp\fP and the second command will not fail. Notice that attempting to get exclusive lock with second command would fail. .RE .sp shell> flock \-x fichier_verrou_local echo \*(Aqa b c\*(Aq .RS 4 Récupérer le verrou exclusif « fichier_verrou_local » avant d’exécuter echo \*(Aqa b c\*(Aq. .RE .sp (; flock \-n 9 || exit 1; # ... commandes exécutées sous un verrou ...; ) 9>/var/lock/mon_fichier_verrou .RS 4 Cette forme est pratique dans les scripts d’interpréteur de commandes. Le mode utilisé pour ouvrir le fichier n\(cqest pas important pour \fBflock\fP ; utiliser \fI>\fP ou \fI>>\fP permet de créer le fichier de verrouillage s\(cqil n\(cqexiste pas déjà, cependant, le droit d\(cqécriture est nécessaire. En utilisant \fI<\fP, le fichier doit déjà exister, mais seul le droit de lecture est nécessaire. .RE .sp [ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock \-en "$0" "$0" "$@" || : .RS 4 This is useful boilerplate code for shell scripts. Put it at the top of the shell script you want to lock and it\(cqll automatically lock itself on the first run. If the environment variable \fB$FLOCKER\fP is not set to the shell script that is being run, then execute \fBflock\fP 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 \fBFLOCKER\fP environment variable to the right value so it doesn\(cqt run again. .RE .sp shell> exec 4<>/var/lock/mon_fichier_verrou; shell> flock \-n 4 .RS 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 \fBflock\fP is used to lock the descriptor. .RE .SH "AUTEURS" .sp .MTO "hpa\(atzytor.com" "H. Peter Anvin" "" .SH "COPYRIGHT" .sp Copyright © 2003\-2006 H. Peter Anvin. C\(cqest un logiciel libre ; consultez les sources pour les conditions de copie. Il n\(cqy a AUCUNE garantie ; même pas de VALEUR MARCHANDE ou d\(cqADÉQUATION À UNE UTILISATION PARTICULIÈRE. .SH "VOIR AUSSI" .sp \fBflock\fP(2) .SH "SIGNALER DES BOGUES" .sp Pour signaler un bogue, utilisez le gestionnaire de bogues sur \c .URL "https://github.com/util\-linux/util\-linux/issues" "" "." .SH "DISPONIBILITÉ" .sp La commande \fBflock\fP fait partie du paquet util\-linux, elle est disponible sur \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "l’archive du noyau Linux" "."