#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
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
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... )
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