On Sun, 02 Feb 2003 13:09:00 -0400
Christophe PEREZ <[EMAIL PROTECTED]> wrote:

> Bonjour,
> 
> Là, c'est clair, c'est pour Jipe, mais peut-être qu'un autre veut s'y
> essayer :-))
> 
> Je veux faire un script, lancé par le .bashrc, mais qui ne doive être
> lancé qu'une seule fois par user et par session.
> 
> J'ai donc mis un test au début qui vérifie s'il est déjà lancé, mais le
> résultat me laisse perplexe.
> 
> J'ai mis quelque chose du genre :
> #!/bin/bash
> if [ $((`ps -x | grep "mon_script" | grep -v grep | wc -l`)) -gt 1 ]; then
>   exit
> fi
> 
> Mais il semble qu'au lieu d'avoir un processus (lui-même), j'en ai
> souvent (mais pas tjrs) 2, donc ça ne colle pas.
> 
> Une idée sur la question ?
> 
> Merci.
> 
> PS : je suis allé sur l'irc, jipe présent mais emble pas en ligne :-)
> -- 
> Christophe PEREZ
> 
> 

si je comprends bien, tu as un script disons euh ... au hasard toto.sh qui se lance en 
vérifiant s'il est déjà lancé.
ce qui fait que s'il est déjà lancé, il apparaitra deux fois dans ps. celui qui est 
déjà lancé, et celui qui se lance en vérifiant.

plutôt que de faire que le script s'auto vérifie, il serait préférable de mettre une 
condition directement dans .bashrc -->

ps -x | grep [t]oto.sh >/dev/null 2>&1 || toto.sh >/dev/null 2>&1 &

ceci signifie:
si ps -x | grep [t]oto.sh renvoie un statut d'erreur, cad si elle ne trouve rien, 
lancer toto.sh en tâche de fond.
cette construction remplace un if then else fi. (dans ce cas, qui n'aurait pas de 
then, ce qui provoquerait une erreur de syntaxe  :)

tip :)
les [] entourant la première lettre de toto.sh permettent d'éliminer la ligne de ps -x 
renvoyant grep. et ainsi de se passer d'une commande grep supplémentaire.

pour ce qui est de l'irc:
serveur: irc.freenode.net
canal  : #debutant

comme j'ai une connexion permanente, j'y laisse mon nick, ainsi qu'un bot surtout 
destiné à éviter que des petits plaisantins ne se l'approprient et y fassent n'importe 
quoi. mais comme tout un chacun, je travaille, je mange, je dors, je ... fais des tas 
de choses :)

il est à la disposition de tous ceux de la liste qui veulent passer y faire un tour et 
aussi (surtout ?) pour ceux qui veulent échanger quelques mots ou discuter d'un 
problème particulier en évitant des threads trop longs sur la liste. une discussion en 
direct permet de régler pas mal de problèmes et si une solution est trouvée, elle 
pourrait (doit!) faire l'objet d'un message sur la liste dont profiterait tout le 
monde. Pour ça, il suffit de s'y donner rendez-vous, à 2 ou plus.

le canal est à vous :)

bye
jipe

Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";

Répondre à