OVH Cloud OVH Cloud

script pour detecter deux occurences

4 réponses
Avatar
olivier girant
Bonjour

Je cherche à faire un script qui compte le nombre de fois où il a déjà
été lancé lui-même, pour éviter de le lancer 2 fois.
Même si je le lance la 1ère fois, le script suivant affiche que mon
programme existe 2 fois, parfois 3 en mémoire (ça dépend des fois !), je
n'arrive pas à comprendre pourquoi. J'ai vu ce comportement sous
mandrake 8.1 (bash 2.05b) et debian woody, (bash 2.05a)

Merci,
oliv


#!/bin/bash

a=`basename $0`
b=`ps -A -f | egrep "\bbash\b" | egrep "\b$a\b"`
echo $b
if (( $b > 1 )); then echo Ce programme a deja ete lance; exit 1; fi

sleep 999

4 réponses

Avatar
Laurent Wacrenier
olivier girant écrit:
Je cherche à faire un script qui compte le nombre de fois où il a déjà
été lancé lui-même, pour éviter de le lancer 2 fois.


Évitez ces magouilles avec "ps" et mettez un vérou.

Avatar
olivier girant
Laurent Wacrenier wrote:
olivier girant écrit:

Je cherche à faire un script qui compte le nombre de fois où il a déjà
été lancé lui-même, pour éviter de le lancer 2 fois.



Évitez ces magouilles avec "ps" et mettez un vérou.


Qu'entendez vous par verrou ? un fichier ?


Avatar
Laurent Wacrenier
olivier girant écrit:
Je cherche à faire un script qui compte le nombre de fois où il a déjà
été lancé lui-même, pour éviter de le lancer 2 fois.



Évitez ces magouilles avec "ps" et mettez un vérou.


Qu'entendez vous par verrou ? un fichier ?


Le vérou peut être matérialisé par un fichier, créé au début du
processus et effacé à sa fin et pouvant contenir le numéro de
processus de son créateur.



Avatar
TiChou
Dans le message <news:40fb973d$0$15276$,
*olivier girant* tapota sur f.c.o.unix :

Bonjour


Bonjour,

[...]

sous mandrake 8.1 (bash 2.05b) et debian woody, (bash 2.05a)


[...]

a=`basename $0`
b=`ps -A -f | egrep "bbashb" | egrep "b$ab"`


man ps

ps -C nom_de_commande

Exemple :

$ ps h -o pid,cmd -C splitlog
2777 splitlog access_log
2778 splitlog images_log
2779 splitlog iis_log
2780 splitlog method_log
2781 splitlog connect_log
2782 splitlog badmethod_log
2783 splitlog user_log
2784 splitlog crawler_log

Mais la réponse du verrou donné par Laurent Wacrenier est la voie à
privilégier.

--
TiChou