Batch - Restart automatiq d'1 program bugué

Résolu
loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   -  
loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   -
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%




--
Allé bon courage et @+
www.google.fr c'est ta copine !

15 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    essayer un test numérique
    if %ERRORLEVEL% GEQ 1 start /B %process%
    0
  2. loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   40
     
    Ok merci, je vais essayer et je te tiens au courant.

    Allé bon courage et @+
    www.google.fr c'est ta copine !
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  4. loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   40
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  7. loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   40
     
    Donc ainsi, ça devrait kill winamp uniquement s'il est planté ou freez ?
    0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  9. vincentdu76
     
    Attention, ERRORLEVEL ne prend pas forcément pour valeur 0 ou 1. Sa dépend des commandes que tu envois.
    0
  10. loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   40
     
    Oulaaa ça se corce, eeeeee des propositions de code ?
    0
  11. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  12. loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   40
     
    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
    1. loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   40
       
      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
  13. loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   40
     
    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
    1. loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   40
       
      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
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      essayer d'ajouter :
      /fi "IMAGENAME eq winamp"
      ou 
      /im winamp
      0
  14. loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   40
     
    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
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      ton test est là
      /fi "status eq not responding" 

      si winamp est running,taskkil ne va rien faire
      0
    2. loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   40
       
      Oui, Mais il faut que je le relance.

      je place où mon
      start /B winamp


      ??
      0
  15. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  16. loudgi Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   40
     
    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