Eu preciso de um arquivo em lotes que será capaz de reiniciar um EXE quando o EXE usa apenas 10% de uso da CPU

0

Atualmente tenho usado isso.

@echo off

set serverName=Server Restarter
title %serverName%

:restart
TIMEOUT /T 900
taskkill /F /IM ServerLauncher.exe /T
goto restart

Editar:

Agora eu tenho esse código no lugar. Ele reinicia automaticamente o servidor após 15 minutos. Mas se ele falhar antes desse limite de tempo. Não irá reiniciar o exe. Você tem que esperar 15 minutos para reiniciar novamente.

O servidor só falha quando a CPU atinge cerca de 10% do uso da CPU. Entrou em um impasse. Então eu estou procurando por algo que sempre que o uso da CPU atinge tão baixo no processo específico, para matá-lo automaticamente e reiniciar. Alguma idéia?

    
por Jon 15.07.2013 / 03:59

1 resposta

0

Como mdpc comentou acima, isso é mais uma solução do que uma solução adequada, mas você pediu por isso aqui vai ...

@echo off
for /f "tokens=2 delims==" %%a in ('"wmic path Win32_PerfFormattedData_PerfProc_Process Where Name='Idle' get PercentProcessorTime /value 2>NUL | find /i "PercentProcessorTime""') do set usage=%%a
if %usage% LEQ 10 (
    echo Time to restart server!
) else (
    echo Not yet...
)

Eu usei o processo "Idle" no código, então você precisa substituí-lo pelo nome do seu processo (se não tiver certeza, veja a saída de wmic path Win32_PerfFormattedData_PerfProc_Process get Name ).

    
por 15.07.2013 / 08:06