Voir si un script bash est lancé

Résolu
B@|-|@N Messages postés 386 Statut Membre -  
B@|-|@N Messages postés 386 Statut Membre -
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
--
Close the world.||.txen eht nepO

5 réponses

  1. np34 Messages postés 21 Statut Membre 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
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  3. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. B@|-|@N Messages postés 386 Statut Membre 62
     
    Merci beaucoup.

    Problème résolu!

    Bahan
    0