Voir si un script bash est lancé

Résolu/Fermé
B@|-|@N Messages postés 386 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 7 décembre 2007 - 29 mars 2005 à 10:02
B@|-|@N Messages postés 386 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 7 décembre 2007 - 29 mars 2005 à 15:44
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

5 réponses

np34 Messages postés 21 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 9 novembre 2005 5
29 mars 2005 à 12:31
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
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
29 mars 2005 à 11:02
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 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
29 mars 2005 à 12:46
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 jeudi 15 janvier 2004 Statut Membre Dernière intervention 7 décembre 2007 62
29 mars 2005 à 15:44
Merci beaucoup.

Problème résolu!

Bahan
0