minecraftのサーバーの設定とか
minecraftの起動
起動スクリプト
kinoko@kinoko-server:~/minecraft-server/mc1.20.1$ cat run.sh
#!/usr/bin/env sh
# Forge requires a configured set of both JVM and program arguments.
# Add custom JVM arguments to the user_jvm_args.txt
# Add custom program arguments {such as nogui} to this file in the next line before the "$@" or
# pass them to this script directly
# java user_jar_vim.txt @libraries/net/minecraftforge/forge/1.20.1-47.3.5/unix_args.txt "$@"
# git pull
screen -S minecraft -U -d -m java -Xms12G -Xmx12G @libraries/net/minecraftforge/forge/1.20.1-47.3.5/unix_args.txt "$@"
# $JAVA_HOME="~/../../usr/lib/jvm/java-1.21.0-openjdk-amd64/bin"
# java -Xms8G -Xmx10G -jar forge-1.20.1-47.3.5-server.jar --nogui
実質screen ...
の一行だけである.
これを毎回叩くのはめんどくさいのでsystemdのデーモンとしてシステム起動時に自動起動するように設定している.
# /etc/systemd/system/minecraft.service
[Unit]
Description=bootstrap service
After=network-online.target
[Service]
Type=forking
User=kinoko
WorkingDirectory=/home/kinoko/minecraft-server/mc1.20.1
TimeoutStopSec=120
ExecStart=/bin/sh /home/kinoko/minecraft-server/mc1.20.1/run.sh
ExecStop=/bin/sh /home/kinoko/minecraft-server/mc1.20.1/stop_now.sh
Restart=always
[Install]
WantedBy=multi-user.target
このサービスファイルを/etc/systemd/
に入れて
sudo systemctl enable minecraft.service
を打つと自動でリンクが貼られ,次回の起動時にスクリプトが走るようになる. 今すぐ起動したいときは
sudo systemctl start minecraft.service
で起動できる.
また,root権限がないとき(そんなことないと思うが)や,sudo
したくないときは以下のようなサービスファイルにすると良い.
# $HOME/.config/systemd/user/minecraft.service
[Unit]
Description=bootstrap service
After=network-online.target
[Service]
Type=forking
WorkingDirectory=/home/kinoko/minecraft-server/mc1.20.1
TimeoutStopSec=120
ExecStart=/bin/sh /home/kinoko/minecraft-server/mc1.20.1/run.sh
ExecStop=/bin/sh /home/kinoko/minecraft-server/mc1.20.1/stop_now.sh
Restart=always
[Install]
WantedBy=multi-user.target
systemctl --user enable minecraft.service
systemctl --user start minecraft.service
停止スクリプト
その他,crontabで毎日6時,18時に停止スクリプトが走るようになっている
# minecraft
0 6 * * * /home/kinoko/minecraft-server/mc1.20.1/stop.sh
0 18 * * * /home/kinoko/minecraft-server/mc1.20.1/stop.sh
ExecStopを使用しないのはプレイしている途中であった場合に安全地帯まで行けるようにするため
kinoko@kinoko-server:~/minecraft-server/mc1.20.1$ cat stop.sh
#!/bin/bash
/usr/bin/screen -S minecraft -X stuff "say this server will be shutdown in 60s\015"
/bin/sleep 30
/usr/bin/screen -S minecraft -X stuff "say this server will be shutdown in 30s\015"
/bin/sleep 15
/usr/bin/screen -S minecraft -X stuff "say this server will be shutdown in 15s\015"
/bin/sleep 5
/usr/bin/screen -S minecraft -X stuff "say this server will be shutdown in 10s\015"
/bin/sleep 5
/usr/bin/screen -S minecraft -X stuff "say this server will be shutdown in 5s\015"
/bin/sleep 5
/usr/bin/screen -S minecraft -X stuff "save-all\015"
/bin/sleep 5
/usr/bin/screen -S minecraft -X stuff "stop\015"
/bin/sleep 5
rm $HOME/minecraft-server/mc1.20.1/world.zip
/usr/bin/zip -r $HOME/minecraft-server/mc1.20.1/world.zip $HOME/minecraft-server/mc1.20.1/world
kinoko@kinoko-server:~/minecraft-server/mc1.20.1$ cat stop_now.sh
/usr/bin/screen -S minecraft -X stuff "stop\015"
rm $HOME/minecraft-server/mc1.20.1/world.zip
/usr/bin/zip -r $HOME/minecraft-server/mc1.20.1/world.zip $HOME/minecraft-server/mc1.20.1/world
このサーバーのマインクラフトにはmodが40個くらい入っているのでメモリをかなり消費する.
kinoko@kinoko-server:~$ systemctl status minecraft.service
● minecraft.service - bootstrap service
Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; preset: enabled)
Active: active (running) since Fri 2025-05-23 06:01:07 UTC; 8h ago
Main PID: 1998168 (screen)
Tasks: 42 (limit: 38427)
Memory: 8.3G (peak: 8.3G)
CPU: 1h 58min 5.849s
CGroup: /system.slice/minecraft.service
├─1998168 SCREEN -S minecraft -U -d -m java -Xms12G -Xmx12G @libraries/net/minecraftforge/forge/1.20.1-47.3.5/unix_args.txt
└─1998169 java -Xms12G -Xmx12G @libraries/net/minecraftforge/forge/1.20.1-47.3.5/unix_args.txt
May 23 06:01:07 kinoko-server systemd[1]: minecraft.service: Scheduled restart job, restart counter is at 6.
May 23 06:01:07 kinoko-server systemd[1]: Starting minecraft.service - bootstrap service...
May 23 06:01:07 kinoko-server systemd[1]: Started minecraft.service - bootstrap service.
kinoko@kinoko-server:~$
サーバーを起動するときはメモリの量(と上限)に注意して起動コマンドを設定しよう.