0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Minecraft】Velocity を Systemd で自動起動させる

Last updated at Posted at 2025-11-01

前置き

私の管理しているサーバー(ららあーす)でも使っている手法です。Docker上で管理するとRAMを多く消費してしまうため、Systemdに落ち着きました。

目次

  1. 動作環境
  2. ディレクトリの作成
  3. Velocityの準備
  4. 実行ユーザーの作成
  5. start.sh, stop.sh の作成
  6. サービスファイルの作成
  7. 実行権限とパーミションの設定
  8. デーモンのリロード
  9. 最後に

動作環境

VPS Agames [パフォーマンス]

  • CPU : AMD Ryzen 9 7900 × 2core
  • RAM : 2GB
  • Disk : 50GB

OS : UbuntuServer 24.04.2

  • Java : OpenJDK 21
  • Velocity : 3.4.0

ネットワーク構成

  • WireGuardによるサーバー間VPN

ディレクトリの作成

opt 配下に Velocity の実行ディレクトリを用意します

mkdir -p /opt/velocity

Velocity の導入

これについては、わかりやすい記事が他にたくさんあるのでそちらを参考にしてください

yululiさんの書いたブログが詳しく書かれていておすすめです

実行ユーザーの作成

root権限で実行するのはセキュリティ上よろしくないので、専用非rootユーザーを作成します

useradd -m -s /bin/bash veluser

sshでログインする予定があるならパスワードを設定

passwd veluser

start.sh , stop.sh の作成

/opt/velocity にsystemdで実行するシェルスクリプトを作成していきます

start.sh
#!/bin/bash
set -eu

SESSION_NAME="velocity"
cd /opt/velocity

if screen -list | grep -q "$SESSION_NAME"; then
  echo "Already running!! screen session: $SESSION_NAME"
  exit 0
else
  echo "Starting screen session: $SESSION_NAME"
  screen -dmS "$SESSION_NAME" java -Xms1G -Xmx1G -XX:+UseG1GC -jar velocity*.jar
  echo "Started successfully."
fi
stop.sh
#!/bin/bash
set -eu

SESSION_NAME="velocity"

if screen -list | grep -q "$SESSION_NAME"; then
  echo "Stopping screen session: $SESSION_NAME"
  screen -S "$SESSION_NAME" -X quit
  echo "Stopped successfully."
else
  echo "Not Found!! screen session: $SESSION_NAME"
fi

サービスファイルの作成

/etc/systemd/system/ にサービスファイルを作成していきます

velocity.service
[Unit]
Description=Velocity Proxy
Wants=network-online.target
After=network-online.target


[Service]
Type=oneshot
RemainAfterExit=true
User=veluser
Group=veluser
WorkingDirectory=/opt/velocity

ExecStart=/opt/velocity/start.sh
ExecStop=/opt/velocity/stop.sh


[Install]
WantedBy=multi-user.target

実行権限とパーミションの設定

chown -R veluser:veluser /opt/velocity
chmod -R 770 /opt/velocity
chmod +x /opt/velocity/start.sh
chmod +x /opt/velocity/stop.sh

デーモンのリロード

deamonをリロードし登録します

sudo systemctl daemon-reload
sudo systemctl enable velocity.service

最後に

初めて書いた記事なので間違いだらけかもしれませんが、誰かのお役に立てれば幸いです。MC Server 開発者向けのDiscordを作成したので、よければ情報交換に参加してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?