IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

[ksh]Savoir si un script est en cours


Sujet :

Linux

  1. #1
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut [ksh]Savoir si un script est en cours
    Bonjour,

    J'ai un script toto.sh qui réalise un traitement.
    En amont, j'ai une tache CRON qui lance un autre script .sh. Dans ce script, je dois regarder si le script toto.sh est en cours et si il n'est pas en cours alors je dois le lancer.

    Le probleme c'est que je ne sait pas comment voir si le script en question est en train d'etre executé.

    en faisant un ps -x je voit le nom du script mais comment recuperer son nom car lui meme en execute plein d'autres.

    merci

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    Je n'ai pas compris ce que tu veux dire par :
    Citation Envoyé par pop_up
    en faisant un ps -x je voit le nom du script mais comment recuperer son nom car lui meme en execute plein d'autres.
    Est-ce que tu pourrais être plus précis ?

    Si tu as besoin de savoir si un script A est lancé, alors ps (avec les bonnes options) est exactement ce qu'il te faut. Je ne vois pas en quoi le fait que ton script A lance d'autres scripts peut poser problème (à moins qu'il ne les lance en tâche de fond ?).

  3. #3
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    je veux savoir si le script toto.sh est lancé

    en faisant ps -x je le voit ainsi que tous les autre que lui meme a lancé.

    le probleme c'est que je sais pas comment tester si il est en cours

    du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if [[ ps -x affiche que toto est en cours  ]] then
       .....
    fi

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    Il faut nalayser le code de retour de grep :

    Retourne 0 si toto est lancé, et 1 dans le cas contraire

    Du coup, un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    retval=`ps -x | grep toto`
    if [[ retval -eq 0 ]] ; then echo "youpi" ; else echo "foutu" ; fi

  5. #5
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    parfait merci sauf que ..

    ça marche pas

    ça me met tout le temps foutu

    je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #!/bin/ksh
    RET_VAL=`ps x | grep toto.sh`
    if [[ $RET_VAL -eq 0 ]] ; then 
    	echo "en cours" 
    else
    	echo "foutu"
    fi
    et ça me dit pour un script pas en cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [XXXX@XXXX  ~]$ ./test.sh
    ./test.sh[8]: 24758 pts/3    S+     0:00 grep toto.sh: unexpected `pts'
    foutu
    et ça me dit pour un script en cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [XXXX@XXXX ~]$ ./test.sh
    ./test.sh[8]: 21393 pts/2    S+     0:00 /bin/ksh ./toto.sh XXX param1 param2 param3 
    24865 pts/3    S+     0:00 grep toto.sh: unexpected `pts'
    foutu

  6. #6
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    c'est bon j'ai reussi à trouver

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #!/bin/ksh
    if ps -ef | grep "toto.sh" | grep -v grep >/dev/null
    then 
    	echo "en cours" 
    else
    	echo "pas en cours"
    fi
    merci quand meme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Savoir qu'une transaction est en cours ?
    Par marot_r dans le forum Access
    Réponses: 1
    Dernier message: 26/01/2007, 15h15
  2. Réponses: 2
    Dernier message: 03/11/2006, 11h36
  3. Savoir si une application est en cours d'exécution??
    Par Davidvb6 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 24/03/2006, 09h33
  4. savoir si un module est en cours d'utilisation
    Par stoyak dans le forum Bioinformatique
    Réponses: 4
    Dernier message: 22/02/2006, 13h07
  5. Comment savoir si un Thread est en cour dexecution?
    Par Soulama dans le forum Langage
    Réponses: 3
    Dernier message: 16/01/2006, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo