You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Windows 10关机时给Minecraft服务器关机脚本足够运行时间?

解决Windows关机时未给Minecraft服务器脚本足够执行时间的方案

一、调整Windows系统关机超时参数

  • 注册表修改:
    1. 打开regedit,定位路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    2. 找到WaitToKillServiceTimeout字符串值(无则新建),将默认的5000(5秒)改为更大数值,比如30000(30秒)
    3. 同时修改同路径下的HungAppTimeout和WaitToKillAppTimeout,同样设为30000,确保应用有足够响应时间
  • 组策略配置:
    1. 打开gpedit.msc,进入计算机配置>管理模板>系统>关机选项
    2. 启用「关闭会阻止或取消关机的应用程序的自动终止功能」,并将「关闭前超时」设为所需时长(如30秒)

二、重构关机脚本的执行逻辑

不要依赖系统默认的异步脚本执行,改为主动控制关机流程:

  • 示例批处理脚本:
@echo off
:: 发送Minecraft服务器关闭指令(需提前配置RCON)
rcon.exe -H localhost -P 25575 -p 你的RCON密码 stop
:: 等待服务器完全关闭,根据实际情况调整时长
timeout /t 20 /nobreak >nul
:: 触发系统关机
shutdown /s /t 0
  • 任务计划触发优化:
    1. 创建新任务,触发器选择「系统事件」,日志选「系统」,来源选User32,事件ID选1074(系统关机事件)或UPS低电量对应事件
    2. 操作指向你的MC关机脚本,勾选「允许最高权限运行」,并设置任务超时时间

三、实用Workaround技巧

  • 给MC服务器安装插件辅助关机:比如Spigot/Paper生态的EssentialsX,配置低电量触发自动保存、玩家通知和服务器关闭逻辑
  • PowerShell精准控制脚本:
# 通过API发送关机指令(需MC服务器开启API支持)
Invoke-WebRequest -Uri "http://localhost:25575/api/v1/stop" -Headers @{"Authorization"="Bearer 你的API令牌"}
# 循环等待Java进程结束
do {
    Start-Sleep -Seconds 5
    $mcProcess = Get-Process -Name "java" -ErrorAction SilentlyContinue
} while ($mcProcess -ne $null)
# 执行系统关机
Stop-Computer -Force
  • 禁用快速启动:打开「电源选项>选择电源按钮的功能>更改当前不可用的设置」,取消勾选「启用快速启动」,避免快速启动跳过脚本执行流程

四、第三方工具推荐

  • Shutdown Blocker:可拦截系统关机请求,先执行自定义脚本再放行关机,支持设置延迟时长
  • AutoHotkey:编写轻量脚本监听系统关机事件,优先完成MC服务器关闭后再允许关机
  • NUT Windows客户端:第三方UPS监控工具,可自定义低电量触发动作,优先执行MC关机脚本再触发系统关机

内容的提问来源于stack exchange,提问作者William

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:32:52