前言
最近是比较悠闲 没啥事,想到了以前的小梦想,于是乎就去实现了一下。开了个Minecraft服务端。
发现问题
由于服务端是forge服,只能使用mod。mod太多存在冲突,经常会导致服务端停服。
第一次开服,所以没有经验,直接java -jar没有带什么参数启动,没想到MC这么吃内存,很多时候会出现内存溢出(OutOfMemory)的情况,从而导致服务端宕机,在MC上简称崩服。
每次崩服都得我手动去重新启动服务端,很烦!所以想一下有没有高效的方法让服务能够自动重启。
解决问题
- 我的想法是使用使用脚本进行启动,我这里是使用批处理脚本解决的。
- 宝塔用户的选择。我的服务器上是安装了宝塔面板,宝塔里面有进程守护软件(Supervisor管理器),使用这个软件也能实现自动重启。
优点是:没门槛且无脑,直接添加进守护就行了。
缺点是:多一个软件就多消耗点资源;操作交给别人我不放心,宝塔出过后门事件;功能比较单一,比如在重启之前我想做些什么事。
windows创建一个.bat文件,linux的话创建一个.sh文件。注意不要再linux下创建.bat要不然运行可能会显示找不到/bin/sh。
代码内容如下,do下面放启动命令,懂的都懂,不懂的直接复制。
代码
#!/bin/sh
while true
do
java -jar -Xms1024m -Xmx3300m forge-1.12.2-14.23.5.2855.jar
done