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?

More than 1 year has passed since last update.

ARKサーバーをサービスにしておく備忘録

Last updated at Posted at 2022-09-11

ARKサーバーをログオフしても起動しておく

Screenにするのもいいけど、サービスにしておけばいいので、そのやり方を書いておきます。
Virtual BOX上でUbuntuをインストールし、実行できることを確認しています。

環境

cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

ユーザーは"ark"

以下の起動オプションをサービスにします。

./ShooterGameServer TheIsland?listen?SessionName=hogehogeServer?ServerPassword=Password?ServerAdminPassword=AdminPassword -server -log

sudoできるユーザーでサービスを追加します。

sudo nano /lib/systemd/system/arkserver.service

以下の内容を記入します。

[unit]
## サービスの説明を記載する。
Description=ARK: Survival Evolved dedicated server
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target

[Service]
Type=simple
Restart=no
StartLimitBurst=3

## 実行時ユーザー名とグループを指定する
User=ark
Group=ark

## サーバー起動前にアップデートをする。force_install_dirは環境に応じて変更する。
ExecStartPre=/usr/games/steamcmd +force_install_dir "/home/ark/arkserver" +login anonymous +app_update 376030 +quit

## サーバーを起動する。ここの起動オプションは環境に応じて変更する。
ExecStart=/home/ark/arkserver/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=hogehogeServer?ServerPassword=Password?ServerAdminPassword=AdminPassword -server -log

LimitNOFILE=100000

## 作業ディレクトリを指定する。実際にARKサーバープログラムがあるディレクトリをフルパスで指定する。
WorkingDirectory=/home/ark/arkserver/ShooterGame/Binaries/Linux

## サービスをリロードするときのコマンド
ExecReload=/bin/kill -s HUP $MAINPID

## サービスをストップするときのコマンド
ExecStop=/bin/kill -s INT $MAINPID

[Install]
WantedBy=multi-user.target

保存後、サービスを起動します。以下のコマンドを使用します。

## systemdを再読み込みする
sudo systemctl daemon-reload
## サービス有効化(システム起動時にプロセス実行)
sudo systemctl enable arkserver
## サービス実行
sudo systemctl start arkserver
## 確認
sudo systemctl status arkserver

sudo systemctl status arkserverの結果がだいたい以下のようであれば無事起動しています。
(Active: active (running)であれば基本OK)

● arkserver.service
     Loaded: loaded (/lib/systemd/system/arkserver.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-11 17:02:30 UTC; 1min 8s ago
    Process: 2198 ExecStartPre=/usr/games/steamcmd +force_install_dir /home/ark/arkserver +login anonymous +app_update 376030 +quit (code=exited, status=0/SUCCESS)
   Main PID: 2219 (ShooterGameServ)
      Tasks: 17 (limit: 19068)
     Memory: 4.9G
        CPU: 1min 11.474s
     CGroup: /system.slice/arkserver.service
             mq2219 /home/ark/arkserver/ShooterGame/Binaries/Linux/ShooterGameServer "TheIsland?listen?SessionName=hogehogeServer?ServerPassword=Password?ServerAdminPassword=AdminPassword" -server -log

Sep 11 17:02:27 manjutest steamcmd[2202]: Steam Console Client (c) Valve Corporation - version 1660762488
Sep 11 17:02:27 manjutest steamcmd[2202]: -- type 'quit' to exit --
Sep 11 17:02:27 manjutest steamcmd[2202]: Loading Steam API...OK
Sep 11 17:02:29 manjutest steamcmd[2202]: Connecting anonymously to Steam Public...OK
Sep 11 17:02:29 manjutest steamcmd[2202]: Waiting for client config...OK
Sep 11 17:02:30 manjutest steamcmd[2202]: Waiting for user info...OK
Sep 11 17:02:30 manjutest steamcmd[2202]: Success! App '376030' already up to date.
Sep 11 17:02:30 manjutest systemd[1]: Started arkserver.service.
Sep 11 17:02:30 manjutest ShooterGameServer[2219]: [S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
Sep 11 17:02:30 manjutest ShooterGameServer[2219]: Setting breakpad minidump AppID = 346110

実際にSteamからサーバーの応答があることを確認できれば完了です。
アップデートがあった場合以下のようにすることで自動でサーバーを停止してアップデートして起動してくれるはずです。

sudo systemctl restart arkserver

何かございましたらコメントを残してくれると幸いです。
以上です。

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?