Minecraft 服務端啓動腳本

Minecraft 服務端啓動腳本

就幾行代碼,懶得傳 git 了,直接貼上了

先這樣,後續再優化

config 需要根據需要自行配置

腳本需在和 jar 包同級目錄運行

#!/bin/bash

# config
JARNAME=forge-1.14.4-28.2.0.jar
XMS="512m"
XMX="2048m"

# option
OPT=$1
if [ $# == 0 ]; then
    echo "usage:"
    echo "    $0 [option]"
    $0 --help
    exit
fi

# --help    
if [ $OPT == -h ] || [ $OPT == --help ]; then
    echo ""
    echo " -h --help    help"
    echo " -r --run     run Minecraft server, will reboot it if server is running"
    echo " -k --kill    kill Minecraft server"
    echo " -a --attach  attach minecraft server screen"
    echo " -l --log     tailf server log"
    echo ""
    echo " usage: \"ctrl + a + d\" to detache screen"
    exit
fi

# --run
if [ $OPT == -r ] || [ $OPT == --reboot ]; then
    PID=`ps -ef | grep $JARNAME | grep -v -E 'grep|SCREEN' | awk '{printf $2}'`
    if [ -n $PID ]; then
        nohup kill $PID > /tmp/screen.log 2>&1 &
    fi
    nohup screen -X -S minecraft_server quit > /tmp/screen.log 2>&1 &
    sleep 3
    screen -R minecraft_server java -Xms${XMS} -Xmx${XMX} -jar $JARNAME nogui
    exit
fi

# --kill
if [ $OPT == -k ] || [ $OPT == --kill ]; then
    PID=`ps -ef | grep $JARNAME | grep -v -E 'grep|SCREEN' | awk '{printf $2}'`
    if [ -n $PID ]; then
        nohub kill $PID > /tmp/screen.log 2>&1 &
    fi
    nohup screen -X -S minecraft_server quit > /tmp/screen.log 2>&1 &
    echo "kill finish"
    exit
fi

# --attach
if [ $OPT == -a ] || [ $OPT == --attach ]; then
    SRVCOUNT=`screen -ls | grep minecraft_server | wc -l`
    if [ $SRVCOUNT -eq 1 ]; then
        screen -r minecraft_server
    elif [ $SRVCOUNT -gt 1 ]; then
        echo "multi server screen"
        screen -ls | grep minecraft_server
    elif [ $SRVCOUNT -lt 1 ]; then
        echo "server screen not running"
    fi
    exit
fi

# --log
if [ $OPT == -l ] || [ $OPT == --log ]; then
    tailf logs/latest.log
    exit
fi

# error param
echo "error param"
echo "usage:"
echo "    $0 [option]"
$0 --help

使用的是 centos7,ubuntu應該差不多,tailf 要改成 tail -f 其他應該一樣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章