Batch - Restart automatiq d'1 program bugué

Résolu/Fermé
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 - 8 juin 2010 à 14:53
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 - 15 juin 2010 à 14:47
Bonjour,


Je situe le contexte.

J'ai un Windows serveur 2003 dans une association qui diffuse des flux audio via winamp (couplé de son plugin DSP) sur un serveur de diffusion (shoucast).

Cette association possède un connexion ADSL de 512 donc déconnexion toutes les 24h.

Le problème c'est qu'à chaque déconnexion winamp 'plante' et freez, il faut donc que je termine le processus manuellement pour le redémarrer par la suite.

J'aimerais automatiser cette tâche par l'intermédiaire d'un script Batch que je placerais en tâche planifié.


Voici ce que j'ai déjà commencé mais visiblement ne fonctionne pas.



@echo off
set process=winamp
pslist %process%
if %ERRORLEVEL% == 1 start /B %process%



15 réponses

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 622
8 juin 2010 à 15:36
hello
essayer un test numérique
if %ERRORLEVEL% GEQ 1 start /B %process%
0
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 40
Modifié par loudgi le 8/06/2010 à 15:59
Ok merci, je vais essayer et je te tiens au courant.

Allé bon courage et @+
www.google.fr c'est ta copine !
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 622
9 juin 2010 à 07:18
peut-être que quand Winamp plante, il reste en mémoire et pslist le voit toujours présent. il faudrait afficher des details avec pslist -d ou peut-être le tuer d'abord avec taskkill puis le relancer.
0
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 40
10 juin 2010 à 13:38
La dernière modif ne fonctionne pas à savoir :

@echo off
set process=winamp
pslist %process%
if %ERRORLEVEL% == GEQ 1 start /B %process%


Oui, c'est ce que je souhaite faire, kill le processus pour le relancer.
Comment dois-je faire ?

@echo off
set process=winamp
pslist %process%
if %ERRORLEVEL% == GEQ 1 TASKKILL /IM winamp.exe
   And start /B %process%
endif


J'ai un doute la pour :
 And start /B %process%

je pense un peu trop algo la lool
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 622
10 juin 2010 à 14:19
si pslist retourne errorlevel GEQ 1 c'est que winamp ne tourne plus, le taskkill est inutile.
attention au == GEQ, le == est de trop
pslist peut (peut-être) voir winamp même si il est planté (cf post 3),je ferais
@echo off
set process=winamp
TASKKILL /IM %process%.exe
start /B %process%
0
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 40
10 juin 2010 à 16:11
Donc ainsi, ça devrait kill winamp uniquement s'il est planté ou freez ?
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 622
10 juin 2010 à 16:21
non, ça le tue systématiquement. parce que je ne sais pas ce que rapporte pslist si il est freeze ou pas
sinon essayer tasklist, qui permet de tester le status RUNNING|NOT RESPONDING
0
vincentdu76
10 juin 2010 à 16:52
Attention, ERRORLEVEL ne prend pas forcément pour valeur 0 ou 1. Sa dépend des commandes que tu envois.
0
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 40
10 juin 2010 à 20:35
Oulaaa ça se corce, eeeeee des propositions de code ?
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 622
11 juin 2010 à 09:48
vérifier les valeurs retournées par pslist:
pslist winamp
echo %errorlevel%

quand winamp tourne
quand winamp est planté, ne répond pas
quand winamp ne tourne pas
0
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 40
14 juin 2010 à 14:43
Hum, alors j'ai testé la commande "pslist wanamp" sur le WinServ 03 et en fait ça ne fait rien. voici d'où vient le prob :-s mon code est faux.

0
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 40
14 juin 2010 à 14:48
Comment utilise t-on la commande tasklist ? je peux avoir un exemple stp ? j'ai fait le "/?" de tasklist, mais c'est pas très parlant pour moi.

Merci de votre aide à tous en tout cas :-)
0
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 40
14 juin 2010 à 15:12
Alors toujours dans la famille de Task je demande le Kill :-)

J'ai trouvé sur ma copine google :
taskkill /f /fi "status eq not responding"


Ce petit code à pour but de kill tous les progs plantés ou figés.

Maintenant comment l'insérer dans un bon petit code ?
0
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 40
14 juin 2010 à 15:14
Je truc, au lieu que ce soit général comme c'est le cas pour ce code, il faudrait qu'il fonctionne que pour winamp.

Et les autres progs pour le mom, ça nous importe peu (hum, en bon français).
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 622
Modifié par dubcek le 14/06/2010 à 15:42
essayer d'ajouter :
/fi "IMAGENAME eq winamp"
ou 
/im winamp
0
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 40
Modifié par loudgi le 14/06/2010 à 16:08
OK, donc voila mn new code que je vais tester.
Il me reste juste à déterminer mon test déclencheur.
Une petite aide ?


@echo off 
echo Verification etat WEBRADIO 

if errorlevel 1 goto prob 
if errorlevel 0 goto noprob 

:noprob 
echo iMPEC tout fonctionne... 
goto fin 

:prob 
echo Il y a un probleme 
echo Restart de Winamp 
taskkill /im winamp.exe /f /fi "status eq not responding" 
start /B winamp.exe 
goto fin 

:fin 
exit

Allé bon courage et @+
www.google.fr c'est ta copine !
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 622
14 juin 2010 à 16:18
ton test est là
/fi "status eq not responding" 

si winamp est running,taskkil ne va rien faire
0
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 40
Modifié par loudgi le 14/06/2010 à 16:26
Oui, Mais il faut que je le relance.

je place où mon
start /B winamp


??
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 622
15 juin 2010 à 09:25
je ferais quelque chose comme ça, je ne peux pas tester, je n'ai pas tasklist ni taskkill
@echo off
echo Verification etat WEBRADIO

tasklist /fi "Imagename eq winamp.exe" /fi "Status eq RUNNING | findstr "winamp"
if %errorlevel% EQU 0 (
        echo IMPEC tout fonctionne...
)
else
(
        taskkill /im winamp.exe /f /fi "status eq not responding"
        echo Il y a un probleme
        echo Restart de Winamp
        start /B winamp.exe
)
rem on vérifie
tasklist /fi "Imagename eq winamp.exe" 
0
loudgi Messages postés 505 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 19 février 2019 40
15 juin 2010 à 14:47
Merci dubcek, je prends note et je testerai.

merci merci pour ton aide :-)



PS: En ce moment je teste une autre solution que winamp. (SimpleCast)
0