Voir si un script bash est lancé [Résolu/Fermé]

Signaler
Messages postés
386
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
7 décembre 2007
-
Messages postés
386
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
7 décembre 2007
-
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

Messages postés
21
Date d'inscription
samedi 12 mars 2005
Statut
Membre
Dernière intervention
9 novembre 2005
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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à !
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 837
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]$
;-))
Messages postés
5476
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
25 février 2021
926
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
Messages postés
386
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
7 décembre 2007
61
Merci beaucoup.

Problème résolu!

Bahan