概述
这个 Mod 能够每天定时重启你的服务器,目前只能设置每天重启一次。这个 Mod 叫做 Auto Shutdown 的原因是,此模组干的事情仅仅是把服务器关闭罢了,重新启动是交给启动脚本来处理的。
当然这个 Mod 的功能不止这么简单,这个 Mod 还增加了玩家投票重启的功能,如果超过一定数玩家的支持,重启就会被触发。
由于某喵呜 J 的建议,目前该 Mod 又增加了一个 Watchdog 从而支持了两个新功能:在服务器假死 (Stall 或 Hung) 或 TPS 过低超过一定时间之后会自动重启。所以即使不想自动重启,也可以装这个 Mod 解决服务器假死不能自动重启的问题。
目前该 Mod 支持 Minecraft 1.12.2,Forge 版本至少为 12.18.5.2959,必须同时在客户端和服务器安装。
指令
指令说明:本 Mod 新增一个指令 /shutdown,用于投票重启。首先需要有一个玩家运行 /shutdown 发起一个投票。之后所有的玩家都必须使用 /shutdown yes 或 /shutdown no投票。
所有玩家投票完之后如果投 No 的人超过一定人数那么就不会重启,如果没超过人数就会重启。
安装
安装之后需要修改你的服务器启动脚本:
Windows下(Shell):
@echo off
:start
[原本的启动参数]
goto start
Linux下(Bash):
#!/bin/bash
while true
do
[原本的启动参数]
done
Windows 下想退出请按 Ctrl+C,Linux 下如果用的 tmux 请Ctrl+C,用的 screen 直接 Ctrl+A 之后输入 :quit。
配置
设置文件介绍:
messages {
# 在重启之前将玩家kick出去的提示
S:Kick=Scheduled server shutdown
# 重启之前的警告信息。%m代表剩余分钟
S:Warn=Server is shutting down in %m minute(s).
}
schedule {
# 如果为true,服务器将会定时重启
B:Enabled=true
# 重启的小时(例: 8代表早上8点) [范围: 0 ~ 23]
I:Hour=6
# 重启的分钟(例: 30代表30分) [范围: 0 ~ 59]
I:Minute=0
}
voting {
# 取消重启的No投票数阀值(超过该投票数投票就会失败) [范围: 1 ~ 999]
I:MaxNoVotes=1
# 发起投票所需最小的在线玩家数 [范围: 1 ~ 999]
I:MinVoters=2
# 如果设置为true则开启投票重启功能
B:VoteEnabled=true
# 重新发起一个投票的最短间隔(分钟) [范围: 0 ~ 1440]
I:VoteInterval=15
}
watchdog {
# 如果设置为true,mod会在强制关闭服务器之前尝试保存世界信息和数据。注意:设置为false可能会关闭服务器快一点,但是造成世界损坏几率会高
B:AttemptSoftKill=true
# 如果设置为true,mod会在服务器未响应或者假死情况下尝试关闭服务器
B:Enabled=true
# 检测服务器未响应(即假死)的间隔时间(秒) [范围: 1 ~ 3600]
I:Interval=10
# TPS在这个值以下会被认为"非常低" [范围: 0 ~ 19]
I:LowTPSThreshold=10
# 在TPS"非常低"的情况下持续多少秒会自动重启 [范围: 1 ~ 3600]
I:LowTPSTimeout=30
# 服务器未响应多少秒后会被关闭(如果装了Sampler请设置为35秒以上) [范围: 1 ~ 3600]
I:Timeout=40
}
本 Mod 完全开源,如果想参考代码或者提交建议/反馈 Bug 请到:https://gitlab.com/targren/forgeautoshutdown。