Voir si un script bash est lancé

Résolu
B@|-|@N Messages postés 386 Date d'inscription   Statut Membre Dernière intervention   -  
B@|-|@N Messages postés 386 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde.

J'espère que vous avez passé un bon week end.

Alors je voudrais savoir comment faire pour voir si mon script est lancé et comment identifier son pid.

En fait si je veux cela, c'est pour éviter que des gens mal intentionnés ne me le lance n fois, n tendant vers beaucoup.

Merci d'avance pour votre aide.

Bahan
A voir également:

5 réponses

np34 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   5
 
Pour éviter que ton script ne soit lancé plusieurs fois, tu peux utiliser des verrous en créant un fichier (contenant le PID du shell qui s'exécute tant qu'à faire) dans /var/lock.

Tu rajoutes donc un truc dans le genre en début de ton script :
if [ -e "/var/lock/$(basename $0)" ] 
then
  echo "le script est déjà lancé, pas possible de le relancer"
  exit 1
fi
echo $$ > /var/lock/$(basename $0)

et en fin :
rm /var/lock/$(basename $0)


voilou

Nicolas
2
marc[i1]
 
Salut et oui j'ai passer un bon week end Pascal :p merci !

la commande :
ps aux

te permet d'afficher les processus en cours (http://www.delafond.org/traducmanfr/man/man1/ps.1.html)

voilà !
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Oui et même que :
ps -ef | grep  ton_script
devrait le faire ausi. Et si tu veux que le "PID" essaie ça :
pgrep ton_script
La preuve :
[jp@Mandrake jp]$ ps -ef | grep fich.sh
jp        5315  3742  0 11:00 pts1     00:00:00 /bin/bash ./fich.sh
jp        5388  5322  0 11:01 pts3     00:00:00 grep fich.sh
[jp@Mandrake jp]$ pgrep fich.sh
5315
[jp@Mandrake jp]$
;-))
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Oui,

Fais bien attention à ce que le fichier de "lock" soit bien supprimé quelle que soit la manière dont ton script bash se termine (si tu as des "exit" qui traînent, gestion d'erreurs, etc., fais une fonction pour terminer ton script de façon clean et appele la systématiquement).


Dal
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
B@|-|@N Messages postés 386 Date d'inscription   Statut Membre Dernière intervention   62
 
Merci beaucoup.

Problème résolu!

Bahan
0