CreoleLock

CreoleLock est un utilitaire permettant de placer, enlever ou vérifier les verrous Creole.

Il peut gérer deux niveaux (level) de verrouillage distincts.

La plupart des outils de base EOLE utilisent de verrous de niveau "système".

Verrou "normal"

Ce type de verrou permet d'éviter qu'une même application soit exécutée deux fois en parallèle. Il s'agit donc d'un verrou isolé.

En mode normal (--level=normal), les fichiers lock sont écrits dans le répertoire /var/lock/eole et il est possible d'exécuter plusieurs applications différentes en même temps tant qu'elles ne posent pas un lock ayant le même nom.

Verrou "système"

Contrairement au mode normal, les verrous "système" (--level=system) sont exclusifs. Cela permet d'éviter que deux applications concurrentes sont exécutées en même temps. Par exemple, il ne faut pas qu'un reconfigure soit exécuté en même temps qu'une sauvegarde : ces deux procédures utilisent des verrous "système".

Dans ce mode, mes fichiers lock sont écrits dans le sous-répertoire /var/lock/eole/eole-system.

RemarqueNom d'un fichier lock

Le nom d'un fichier lock est de la forme prefixe.suffixe, avec :

  • un préfixe invariant fourni par le programme (généralement le nom de l'application) ;
  • un suffixe représentant le PID[1] de l'application.

Poser un verrou avec CreoleLock

Pour poser un verrou nommé toto, la commande à taper est la suivante :

CreoleLock acquire --name toto

Si un verrou existe déjà, la commande affichera un message d'erreur et ne renverra pas le code 0.

Vérifier la présence d'un verrou avec CreoleLock

Pour vérifier la présence du verrou nommé toto, la commande à taper est la suivante :

CreoleLock is_locked --name toto

Cette commande retournera le code 0 si le verrou est présent.

Supprimer un verrou avec CreoleLock

Pour supprimer un verrou nommé toto, la commande à taper est la suivante :

CreoleLock release --name toto

Cette commande retournera le code 0 en cas de succès.

Attention

Seul le programme (y compris la console si la commande est lancée en console) qui a posé le verrou a le droit de le supprimer.

API python

La librairie pyeole.lock permet de gérer les verrous Creole directement en python.

Elle fournit notamment les fonctions acquire, is_locked et release.

Truc & astuce

L'option -h permet d'afficher les paramètres de la commande CreoleLock :

# CreoleLock -h

usage: /usr/bin/CreoleLock [acquire|release|is_locked] [options|--help]