Minestart – 當 Minecraft Server 停止時自動重新啟動

4 / 12, 2016 Minecraft , 軟體推薦

最近遇到一個問題,就是有時 Minecraft Server 會 crash ,但是有時我可能人在外面,或是剛好沒發現他當掉了,往往都是好幾個小時甚至一兩天之後才會發現他掛點了,所以這幾天花了點時間研究要怎麼讓系統自動去偵測 Minecraft Server 是否在運作,然後就發現一個好棒棒的程式叫做 Minestart。

原帖:http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-tools/1264596-minestart-automatically-restart-crashed-minecraft
下載連結:https://www.sendspace.com/file/8lbmx3

*以下都是 Linux 系統上的教學,若使用 Windows ,請改用 Linux 吧 Windows 爛透了,請見 README 文件

首先下載下來,上傳 config.mscfg 與 MineStart.jar 到伺服器,與 Minecraft 同資料夾

接著修改一下 config 檔案

vim config.mscfg

依照以下方式填入

ip=127.0.0.1
port=25565
interval=300
closecmd=pkill -f MINECRAFTMS
opencmd=screen -d -m -S MINECRAFTMS java -Xmx512M -jar Craftbukkit.jar nogui

其中 IP 記得寫區網不要寫外網 IP , Port 的話,一般 Minecraft 伺服器都是預設 25565 ,請依照現況調整, interval 是檢查的週期,建議不要太短避免消耗資源,但也不要長的離譜喔 XD 我個人是設定 300 秒,也就是五分鐘,此外,其中 java -Xmx512M -jar Craftbukkit.jar nogui 是啟動指令,依照個人需求填入吧

接著,開一個新檔案叫做 start.sh ,或是修改以前的執行指令檔也是可以,填入下述內容

screen -d -m -S MINECRAFTMS java -Xmx512M -jar Craftbukkit.jar nogui
screen -d -m -S MINESTART java -Xmx64M -Xms64M -jar MineStart.jar

同樣, java -Xmx512M -jar Craftbukkit.jar nogui 是啟動指令,依照個人需求填入

然後

sh start.sh

如果找不到 screen 套件,請使用 apt-get install screen 或是 yum install screen 來安裝
沒意外的話 Minecraft Server 已經開始運作了,同時 MineStart 也會啟動,可以用以下指令檢查

screen -ls

理應會看到兩個程序,分別叫做 MINECRAFTMS 與 MINESTART ,可以用 screen -r MINECRAFTMS 來檢視 Minecraft Server 的 Log
minestart-1

接著為了測試,我手動把 Minecraft Server 關閉,然後看看 MINESTART 程序的狀況(用 screen -r MINESTART),等待 interval 時間後,就可以看到伺服器被重新啟動囉
minestart-2

不過這軟體有個缺點,就是每次檢查都會出現一個 Connection Reset 的訊息,有點佔 Log 空間 🙁

  • BobbyHo

    把檔案載下來跑的時間,我都把 shell script 寫完 crontab 設完了呢(?

    • s3131212

      喔。
      可是我不會寫 shell script 。

  • BobbyHo

    叭叭,檔案沒 host 在 GitHub 上,零分。

  • maple

    請問參加年會需要學會哪些能力和工具?
    我有一些程式底子,會一些掃描和探測工具,但是我一直對資安方面很陌生
    作業系統是windows,是不是改用Linux會比較好?
    請問有入門建議嗎?

    • maple

      我看到站主提供的gotyour教學,我想我的問題獲得解答^^

      • s3131212
        • maple

          站主的教學讓我受益良多,謝謝站主的製作和提供^^

  • fishlover2009

    用crontab(?

    • s3131212

      身為懶人之王,我怎麼可能那麼辛苦設定 crontab 呢(?

      • fishlover2009

        XD