| LOCKFILE(1) | General Commands Manual | LOCKFILE(1) |
NOM¶
lockfile – Création conditionnelle de fichier de sémaphore
SYNOPSIS¶
lockfile -temps_veille | -r tentatives | -l délai_verrou | -s suspension | -! | -ml | -mu | fichier ...
DESCRIPTION¶
lockfile peut être utilisé pour créer un ou plusieurs fichiers de sémaphore. Si lockfile ne peut pas créer tous les fichiers indiqués (dans l’ordre spécifié), il attend temps_veille secondes (par défaut 8) et réessaie le dernier fichier ayant échoué. Il est possible de préciser le nombre de tentatives à réaliser avant qu’un échec soit signalé. Si ce nombre est -1 (valeur par défaut, c’est-à-dire -r-1), lockfile essaie indéfiniment.
Si le nombre de tentatives est atteint avant que tous les fichiers aient été créés, lockfile signale un échec et supprime tous les fichiers qu’il vient de créer.
L’utilisation de lockfile comme condition d’une boucle dans un script d’interpréteur de commandes peut être réalisée facilement en utilisant le drapeau -! pour inverser le code de retour. Pour éviter des boucles infinies, les échecs pour n’importe quelle raison autre que celles existant déjà pour lockfile ne sont pas inversés, mais sont plutôt toujours renvoyés comme tels.
Tous les drapeaux peuvent être indiqués à n’importe quelle position sur la ligne de commande, ils sont traités lorsqu’ils sont rencontrés. La ligne de commande est simplement analysée de gauche à droite.
Tous les fichiers créés par lockfile sont en lecture seule, et, par conséquent, doivent être supprimés avec rm -f.
Si un délai_verrou est indiqué, un fichier de
verrou est supprimé de force après que
délai_verrou secondes se sont écoulées depuis
que le fichier de verrou a été modifié ou
créé (très probablement par un autre programme
quelconque qui, de manière inattendue, s’est terminé il
y a longtemps, et de là, ne peut pas supprimer tout fichier de verrou
résiduel). lockfile est insensible aux décalages
d'horloge. Après qu’un fichier de verrou a été
supprimé, un délai de suspension secondes (par
défaut 16) est pris en compte dans le but de prévenir
la suspension immédiate involontaire de tout fichier de verrou
nouvellement créé par un autre programme (voir SUSPEND
dans procmail(1)).
Verrou de boîte aux lettres¶
Si le répertoire d’entrepôt de courriels du système le permet ou si le fichier de verrou a les bits setgid adaptés, il peut verrouiller ou déverrouiller la boîte aux lettres du système un utilisant respectivement les options -ml et -mu.
EXEMPLES¶
Supposons que nous voulons nous assurer que l’accès au fichier important est sérialisé, c’est-à-dire que pas plus d’un programme ou script d’interpréteur n’est autorisé à y accéder et, par souci de simplicité, supposons que c’est un tel script ; dans ce cas, cela peut être solutionné de cette manière :
... lockfile important.lock ... accédons_à_"important"_pour_ce_que_nous_désirons ... rm -f important.lock ...
Alors, si tous les scripts accédant à important suivent cette directive, il est assuré que tout au plus un script sera exécuté entre les commandes lockfile et rm.
ENVIRONNEMENT¶
- LOGNAME
- variable d’environnement utilisée comme moyen pour
déterminer le nom de connexion de l’appelant
FICHIERS¶
- /etc/passwd
- vérification ou correction du nom de connexion de l’appelant
(et pour détermination de son répertoire HOME si
nécessaire)
- /var/mail/$LOGNAME.lock
- fichier de verrou pour la boîte aux lettres du
système ; les variables d'environnement utilisées ne
sont pas récupérées depuis l’environnement,
mais sont déterminées par une recherche dans
/etc/passwd
VOIR AUSSI¶
DIAGNOSTICS¶
- Filename too long, ...
- Utiliser des noms de fichier plus courts.
- Forced unlock denied on "x"
- Absence de permission d’écriture dans le répertoire
où le fichier de verrou « x »
réside, ou plus d’un lockfile essayant
d’imposer un verrou au même moment.
- Forcing lock on "x"
- Le fichier de verrou « x» va être
supprimé de force à cause d’un délai (voir
LOCKTIMEOUT dans procmail(1)).
- Out of memory, ...
- Le système manque d’espace d’échange (swap).
- Signal received, ...
- lockfile va supprimer tout ce qu’il vient de créer
puis quitter.
- Sorry, ...
- Le nombre limite de tentatives a été atteint.
- Truncating "x" and retrying lock
- « x » ne semble pas être un nom valable
de fichier.
- Try praying, ...
- Sous-répertoires absents ou privilèges insuffisants.
BOGUES¶
Certainement moins d’un.
AVERTISSEMENTS¶
Le comportement du drapeau -!, bien qu’utile, n'est pas nécessairement intuitif, ni cohérent. Lorsqu'ils vérifient la valeur de retour de lockfile, les auteurs de scripts d’interpréteur doivent réfléchir attentivement s'ils souhaitent utiliser le drapeau -!, simplement inverser la condition de vérification ou basculer sur le code de retour exact. En général, le drapeau -! ne doit être utilisé que lorsque lockfile fait partie de la condition d'une boucle.
DIVERS¶
lockfile est compatible avec NFS et gère les données en 8 bits.
NOTES¶
Appeler lockfile avec les options -h ou -? affiche une page d'aide en ligne de commande. Appeler lockfile avec l'option -v, affiche l’information de version.
Plusieurs drapeaux -! affichent le code de retour.
Puisque les drapeaux peuvent apparaitre n’importe où sur la ligne de commande, n’importe quel nom de fichier débutant par un tiret (-) doit être précédé par « ./ ».
Le nombre de tentatives n’est pas réinitialisé lorsqu’un fichier suivant est en cours de création (c’est-à-dire ce nombre est simplement épuisé). Il peut cependant être réinitialisé en spécifiant -rInouvelles_tentatives après chaque fichier sur la ligne de commande.
Bien que toute sorte de nom de fichier peut être utilisé, c’est une pratique courante d’utiliser l’extension .lock pour verrouiller les dossiers de courriels (elle est suffixée au nom de répertoire de courriels). Pour ne pas avoir à se préoccuper des noms de fichier trop longs et ne pas se conformer à toute autre convention de nom de fichier de verrou, une excellente manière de générer un nom de fichier de verrou correspondant à quelque fichier déjà existant est d’utiliser le préfixe lock. et de suffixer le numéro d’inœud du fichier à verrouiller.
SOURCE¶
Ce programme fait partie de mail-processing-package de procmail (v.3.23pre) disponible sur http://www.procmail.org/ ou ftp.procmail.org dans pub/procmail/.
MAILINGLIST¶
Il existe une liste de diffusion pour les questions relatives à tout programme du paquet procmail(1) :
<procmail-users@procmail.org>
pour soumettre des questions ou des réponses.
pour les requêtes d’abonnement.
pour se tenir au courant des nouvelles versions ou des correctifs, envoyer une
demande d’abonnement à
procmail-announce-request@procmail.org
AUTEURS¶
Stephen R. van den Berg
<srb@cuci.nl>
Philip A. Guenther
<guenther@sendmail.com>
TRADUCTION¶
La traduction française de cette page de manuel a été créée par Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 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.
| 2001/06/23 | BuGless |