プラグインとかもあったけど、cronでスクリプト実行するほうがシンプルで簡単そうだったのでやってみた。
こちらを参考に、でもここにある通りだとうまく動かなかったので、多少手を入れてます。
# ------------設定箇所--------------- # 再起動までの待機時間(秒) WAIT=60 # screenの名前 SCREEN_NAME=Minecraft # --------------------------------- # 15分前からsayコマンドで予告メッセージを出していく screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 15分後にサーバーを再起動します\015"' sleep 300 screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 10分後にサーバーを再起動します\015"' sleep 300 screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 5分後にサーバーを再起動します\015"' sleep 120 screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 3分後にサーバーを再起動します\015"' sleep 120 screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 1分後にサーバーを再起動します\015"' sleep 30 screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 30秒後にサーバーを再起動します\015"' sleep 20 screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 10秒後にサーバーを再起動します\015"' sleep 5 screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 5秒後にサーバーを再起動します\015"' sleep 1 screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 4秒後にサーバーを再起動します\015"' sleep 1 screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 3秒後にサーバーを再起動します\015"' sleep 1 screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 2秒後にサーバーを再起動します\015"' sleep 1 screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 1秒後にサーバーを再起動します\015"' sleep 1 # いざstopコマンド実行! screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "stop\015"' # 指定した秒数待機 sleep $WAIT # 起動スクリプトがあるディレクトリに移動して、いざ起動! screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "cd minecraft-spigot_1.19.4"\015' screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "./Minecraft_start.sh\015"'
ひたすらscreenに干渉してコマンドを投げていくだけです。
ちゃんと作るならコマンドの結果とかチェックしたい感じ。
特にstopのあと、単に60秒WAITするんじゃなくて、stopが終わったのを確認してstartできたらなーと思ったり。
このスクリプトをcronに登録してあげます。
無事、毎日8時半に再起動が行われるようになりました。
めでたしめでたし。