Faire en sorte qu'un programme .exe redemarre après un crash

maxime77240 Messages postés 17 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai crée un serveur Starbound, mais il peut arriver que celui-ci crash de temps en temps. C'est pourquoi je souhaiterai créer un fichier .bat qui permettrai de le relancer en cas de crash.

J'ai essayer un peu de regarder les fichiers .bat permettant de redémarrer les serveurs WoW et Minecraft (même principe), mais ceux-ci n'ont pas fonctionné, le serveur ne redémarre pas après sa fermeture.

Le fichier est un .exe

Merci.

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    au plus simple, je dirais une boucle, si l'exe s'arrête, la boucle continue et le redémarre, pour autant qu'au démarrage il ne se mette pas en arrière plan
    for /L %%a in (1,1,100) do  startbound.exe
    0
  2. maxime77240 Messages postés 17 Statut Membre 1
     
    Salut,

    Merci pour la réponse!

    J'ai réussi à récupérer ce code sur internet, à la base crée pour Arma. J'ai tout simplement modifié le chemin d'accès du .exe

    Y a-t-il des choses à modifier, à ajouter ou à retirer (inutiles)?

    Si le programme se met en mode "Ne répond pas", va-t-il se fermer sans mon intervention (cliquer sur "Fermer programme) et donc pouvoir se redémarrer tout seul?

    Merci

    @echo off
    :start
    C:\Windows\System32\tasklist /FI "IMAGENAME eq starbound_server.exe" 2>NUL | C:\Windows\System32\find /I /N "starbound_server.exe">NUL
    if "%ERRORLEVEL%"=="0" goto loop
    echo Server monitored is not running, will be started now
    start "" /wait "D:\Steam\SteamApps\common\Starbound\win32\starbound_server.exe"
    echo Server started succesfully
    goto started
    :loop
    cls
    echo Server is already running, running monitoring loop
    :started
    C:\Windows\System32\timeout /t 3
    C:\Windows\System32\tasklist /FI "IMAGENAME eq starbound_server.exe" 2>NUL | C:\Windows\System32\find /I /N "starbound_server.exe">NUL
    if "%ERRORLEVEL%"=="0" goto loop
    goto start
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    le mieux c'est de le tester
    0