概述
这个模组能够每天定时重启你的服务器,目前只能设置每天重启一次。
它叫做 Auto Shutdown 的原因是,此模组干的事情仅仅是把服务器关闭罢了,重新启动是交给启动脚本来处理的。
当然这个模组的功能不止这么简单,这个模组还增加了玩家投票重启的功能,如果超过一定数玩家的支持,重启就会被触发。
由于某喵呜 J 的建议,目前该模组又增加了一个 Watchdog,从而支持了两个新功能:在服务器假死 (Stall 或 Hung) 或 TPS 过低超过一定时间之后会自动重启。所以即使不想自动重启,也可以装这个模组解决服务器假死不能自动重启的问题。
目前该模组支持 Minecraft 1.12.2,Forge 版本至少为 12.18.5.2959,必须同时在客户端和服务器安装。
指令
指令说明:此模组新增一个指令 /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 {
# 在重启之前将玩家踢出去的提示。
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,模组会在强制关闭服务器之前尝试保存世界信息和数据。
# 注意:设置为 false 可能会关闭服务器快一点,但是造成世界损坏几率会更高!
B:AttemptSoftKill=true
# 如果设置为 true,模组会在服务器未响应或者假死情况下尝试关闭服务器。
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
}此模组完全开源,如果想参考代码或者提交建议/反馈 Bug 请到:https://gitlab.com/targren/forgeautoshutdown 。