Scroll to navigation

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

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

rm(1), mail(1), sendmail(8), procmail(1)

DIAGNOSTICS

Utiliser des noms de fichier plus courts.
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.
Le fichier de verrou « x» va être supprimé de force à cause d’un délai (voir LOCKTIMEOUT dans procmail(1)).
Le système manque d’espace d’échange (swap).
lockfile va supprimer tout ce qu’il vient de créer puis quitter.
Le nombre limite de tentatives a été atteint.
« x » ne semble pas être un nom valable de fichier.
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.

<procmail-users-request@procmail.org>
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

(c’est une liste destinée uniquement à la lecture).

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