🎃
完全無料でマインクラフト公開サーバーを作る [サーバーを自動起動&自動再起動]
スクリプトファイルを作る
サーバーの起動がしやすくなる
参考
start.sh
start.sh
#!/bin/bash
#JAR
JARFILE=paper-1.20.6-151.jar
#メモリ
M=8G
#SCREEN_NAME
SCREEN_NAME='minecraft'
cd /home/User/minecraftserver
screen -AdmSU ${SCREEN_NAME} java -Xms${M} -Xmx${M} -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:InitiatingHeapOccupancyPercent=20 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar ${JARFILE} --nogui
次に実行権限を追加
terminal
chmod 755 start.sh
テスト
スクリプトファイルが動くかどうかテストしておく
terminal
./start.sh
そのあと
terminal
screen -ls
で
There is a screen on:
1842.minecraft (1835年03月5日 3時35分35秒) (Detached)
1 Socket in /run/screen/S-User.
などと出てくれば成功
サーバーターミナルにアクセスしたい場合は
terminal
screen -r
で開く
stop.sh
stop.sh
#!/bin/bash
#待ち時間
WAIT=300
SCREEN_NAME='minecraft'
screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say reboot server after '${WAIT}' secs...\015"'
#待つ
sleep $WAIT
#kick
screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "kick @a サーバー再起動。5~10分ほどして接続し直してください。 \015"'
#停止
screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "stop\015"'
実行権限を追加
terminal
chmod 755 stop.sh
テスト
スクリプトファイルが動くかどうか同じようにテスト
start.shを実行した後に
terminal
./stop.sh
cronで再起動時に自動的に実行されるようにする
terminal
crontab -e
下に移動して
crontab
@reboot '/home/User/start.sh'
0 5 * * * '/home/User/stop.sh'
8 5 * * * /usr/sbin/shutdown -r now
を最後に記述
今回は /home/User/ にスクリプトファイルを作った
例 : 毎日5時にstop.shが実行されるようにするには
0 5 * * *
細かい設定をしたいなら
この辺を参考に
参考
Discussion