我需要一个批处理文件,当 EXE 仅使用 10% CPU 使用率时,它可以重新启动 EXE

我需要一个批处理文件,当 EXE 仅使用 10% CPU 使用率时,它可以重新启动 EXE

我目前正在使用这个。

@echo off

set serverName=Server Restarter
title %serverName%

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

编辑:

现在我已经编写好了这段代码。它会在 15 分钟后自动重启服务器。但如果服务器在该时间限制之前崩溃,它不会重启 EXE。您必须等待 15 分钟才能再次重启。

只有当 CPU 使用率达到 10% 左右时,服务器才会崩溃。它会陷入死锁。所以我正在寻找一种东西,每当特定进程的 CPU 使用率达到如此低时,它就会自动终止并重新启动。有什么想法吗?

答案1

作为微分方程上面评论说这更多的是一种黑客/解决方法而不是一个正确的解决方案,但是你要求它,所以这里是......

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

我在代码中使用了“空闲”进程,因此您需要将其替换为您的进程名称(如果不确定,请参见的输出wmic path Win32_PerfFormattedData_PerfProc_Process get Name)。

相关内容