AnglaisFrançaisEspagnol

Exécutez les serveurs | Ubuntu > | Fedora > |


Icône de favori OnWorks

with-lock-ex - En ligne dans le Cloud

Exécutez with-lock-ex dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande with-lock-ex qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

PRÉNOM


with-lock-ex - casier de fichiers

SYNOPSIS


avec-cadenas-ex -w|-q|-f fichier de verrouillage commander args ...

DESCRIPTION


with-lock-ex ouvrira et verrouillera le fichier de verrouillage pour l'écriture, puis alimentera le reste de
ses arguments à exec(2) ; lorsque ce processus se termine, le fd sera fermé et le fichier
déverrouillé automatiquement par le noyau.

Si le fichier n'existe pas, il est créé, avec des autorisations rw pour chaque classe d'utilisateurs pour
que l'umask a w.

OPTIONS


-w Attendez que le verrou soit disponible.

-f Échec (impression d'un message sur stderr et sortie de 255) si le verrou ne peut pas être acquis
immédiatement parce qu'un autre processus l'a.

-q Ne rien faire en silence (c'est-à-dire quitter 0 au lieu d'exécuter le processus spécifié) si le
le verrou ne peut pas être acquis immédiatement car un autre processus l'a.

VICIÉ SERRURES


Le protocole de verrouillage utilisé ne souffre pas de verrous périmés. Si la serrure ne peut pas être
acquis, un ou plusieurs processus en cours d'exécution doivent actuellement détenir le verrou ; si la serrure doit
être libérés, ces processus doivent être tués.

En aucun cas, des tâches cron de "nettoyage de serrures périmées", ou similaires, ne doivent être instituées.
Dans les systèmes où un grand nombre de verrous peuvent exister, les anciens fichiers de verrouillage peuvent être supprimés de cron mais
uniquement si chaque verrou est acquis avant que le fichier de verrouillage ne soit supprimé, par exemple avec

avec-cadenas-ex -q fichier de verrouillage rm fichier de verrouillage

impasses


Il n'y a pas de détection de blocage. Dans un système à plusieurs verrous, une hiérarchie de verrous doit
être établi, de telle sorte que pour chaque paire de serrures A et B qu'un processus peut verrouiller
simultanément, soit A>B or B>A où la relation > est transitive et non cyclique.

Ensuite, pour deux serrures X et Y avec X>Y il est interdit d'acquérir X en tenant Y.
Au lieu de cela, acquérir X d'abord, ou relâchez Y avant de (ré)acquérir X et Y dans cet ordre.

(Il existe des moyens plus compliqués d'éviter les interblocages, mais une hiérarchie de verrouillage est simple à
comprendre et mettre en œuvre. Si cela ne répond pas à vos besoins, consultez la littérature.)

VERROUILLAGE PROTOCOLE


Le protocole de verrouillage utilisé par avec-cadenas-ex est comme suit:

Le verrou est détenu par un processus (ou groupe de processus) qui détient un verrou exclusif fcntl
sur le premier octet du fichier brut qui porte le nom spécifié. Un titulaire de la serrure
(et seulement un détenteur du verrou) peut supprimer le fichier ou changer l'inode auquel le nom
se réfère, et dès qu'il le fait, il cesse de tenir le verrou.

N'importe quel processus peut créer le fichier s'il n'existe pas. Il n'est pas nécessaire que le fichier
contenir des données réelles. En effet, en fait, l'utilisation du fichier pour le stockage de données est fortement
déconseillé, car cela empêchera la plupart des stratégies de mise à jour fiable. Utiliser un
fichier de verrouillage séparé à la place.

La possibilité d'obtenir le verrou correspond à l'autorisation d'écriture sur le fichier (et bien sûr
autorisation de créer le fichier, s'il n'existe pas déjà). Cependant, les processus avec
seule l'autorisation de lecture sur le fichier peut empêcher l'acquisition du verrou ; donc
les fichiers de verrouillage ne devraient généralement pas être lisibles par le monde.

Lorsqu'un (groupe de) processus souhaite acquérir le verrou, il doit ouvrir le fichier (avec
O_CREAT) et verrouillez-le avec fctl(2) F_RWLCK, opération F_SETLK or F_SETLKW. Si ce
réussit, il doit fstater le descripteur de fichier dont il dispose et le fichier par son chemin. Si la
l'appareil et l'inode correspondent alors le verrou a été acquis et reste acquis jusqu'à ce que
groupe de processus modifie le fichier auquel le nom fait référence, supprime le fichier ou libère
le verrou fcntl. Si ce n'est pas le cas, un autre processus a acquis le verrou et supprimé le
déposer entre-temps ; vous devez maintenant fermer votre descripteur de fichier et recommencer. avec-serrure-
ex suit cette spécification.

Notez que troupeau(2) est un type de serrure différent de fctl (2). avec-cadenas-ex Usages fctl.

Utilisez with-lock-ex en ligne en utilisant les services onworks.net


Ad


Ad