Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/09/2008, à 10:17

Jidey

Script de relance automatique d'un programme

Salut!

Voilà. J'utilise gssmp pour écouter ma musique. J'adore ce programme, parce que je déteste les lecteurs audio avec des boutons partout qui servent à rien. Bref c'est pas le sujet.

Le seul défaut de gssmp, c'est que des fois il plante :  la fenêtre devient grise, et la seule chose à faire est de le "forcer à quitter" et de le relancer. Bon c'est pas si grave que ca mais c'est chiant.

Donc je voudrais faire un script, lancé toutes les minutes par exemple, qui vérifie si gssmp n'est pas planté, et si jamais il est planté, il le relance. Je sais tout faire, sauf la vérification de plantage. Quelqu'un pourrait m'aider?

Merci d'avance!
++

Hors ligne

#2 Le 08/09/2008, à 10:37

Totor

Re : Script de relance automatique d'un programme

Tu peux peut-être t'aider de l'état du processus :

#!/bin/bash
monpid=$(pidof "gssmp")
[ "${monpid}" != "" ] && etat=$(ps -o state --pid ${monpid} --no-headers)

Les états possibles :

PROCESS STATE CODES
       D   uninterruptible sleep (usually IO)
       R   runnable (on run queue)
       S   sleeping
       T   traced or stopped
       Z   a defunct ("zombie") process

EDIT : remplacement de |tail -1 par --no-headers

Dernière modification par Totor (Le 08/09/2008, à 13:16)


-- Lucid Lynx --

Hors ligne

#3 Le 08/09/2008, à 10:39

claudius01

Re : Script de relance automatique d'un programme

Bonjour,

Je te propose le script suivant (à adapter) :

while true
do
        rtn=`ps -ef | grep $1 | grep -v grep`
        [ $? -ne 0 ] && break
        sleep 60
done

exit 0

le $1 du script devra être le nom du process 'gssmp' (ou autre) qui est présent dans la liste des process lorsque le programme 'gssmp' est opérationnel
En espérant que 'gssmp' se plante en disparaissant de la liste des process smile


Claudius, A+

Hors ligne

#4 Le 08/09/2008, à 10:39

Jidey

Re : Script de relance automatique d'un programme

Ca m'a l'air pas mal, enfin c'est un truc du genre que je cherchais. J'vais essayer! Merci!

Hors ligne

#5 Le 08/09/2008, à 10:58

lawl

Re : Script de relance automatique d'un programme

j'ai bien peur que si ta fenêtre est grisé le process soit tjs present...

Hors ligne

#6 Le 08/09/2008, à 11:21

Jidey

Re : Script de relance automatique d'un programme

J'avais essayé en cherchant juste gssmp dans les process, et oui, il est toujours présent. Mais la méthode de Totor me semble pas mal. Le problème c'est que du coup gssmp ne veut plus planter, donc j'peux pas essayer...Enfin bon, j'vous tiens au courant wink

Hors ligne

#7 Le 11/09/2008, à 18:04

Jidey

Re : Script de relance automatique d'un programme

Bon...Après 3 jours d'attente, gssmp a enfin bien voulu planter (il plante plus souvent en général bien sur... roll )

Bref...Le process est toujours présent et qu'il soit planté ou pas, ps -o state --pid ${monpid} renvoie toujours S (sleeping). D'ailleurs il en renvoie 2 :

$ ps -o state --pid 7150
S
S

Quelqu'un a une autre idée?

Hors ligne