我目前正在使用这个。
@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
)。