🎃

完全無料でマインクラフト公開サーバーを作る [サーバーを自動起動&自動再起動]

に公開

スクリプトファイルを作る

サーバーの起動がしやすくなる

https://www.nekoy3.net/article/478641686.html
https://blog.yuki0311.com/papermc-configuration/
参考

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 * * *

細かい設定をしたいなら

https://qiita.com/nemutas/items/3f5816eabbf0eda5e6a9

この辺を参考に


参考
https://office54.net/iot/linux/ubuntu-regular-reboot

Discussion