Tester unicité d'un script
Bonsoir à toutes et à tous.
Développant tranquillou à la maison sous Linux, j'ai créé un petit script appelé monScript.sh en bash.
Je voudrais que l'on ne puisse pas le lancer deux fois. j'ai donc penser à placer une petite boucle if en début de script, de la façon suivante :
Code:
1 2 3 4 5 6 7
| #/bin/bash
sNomScript=`basename $0`
if [ `ps | grep ${sNomScript} | wc -l` -gt 1 ]; then
echo "ERREUR : Script deja lance"
exit 1
fi |
Je voulais me la tenter comme ça, car quand j'essayais a la mano ca marchait plutôt pas mal.
Je lançais d'abord mon script de la manière suivante : Puis je faisais un
Code:
ps | grep monScript.sh
et cela me retournait bien une seule et unique ligne.
Cependant, dans le script, la commande
Code:
ps | grep monScript.sh
me ramène plusieurs lignes. Je soupçonne le grep de s'ajouter à la liste des process correspondant à ma recherche, mais je n'en suis pas certain.
Je me tâte du coup pour savoir comme faire pour tester l'unicité de mon script. ^_^
Comment faire pour ne pas voir le grep dans la liste de mes process et voir uniquement ce que je précise dans ma recherche ?
La solution facile serait d'incrémenter de 1 le nombre de lignes valides lorsqu'une seule occurence de monScript.sh est lancée, mais je ne trouve pas ça très propre :p.
Merci d'avance pour votre aide.
Cdt.
Bahan