あきらぼ

テック系ブログ

【Steam】【Ubuntu】【ARK】ARKのゲームサーバーをSystemdでデーモン(service)化する

今回はARKのゲームサーバーをCrontabでモニターして起動する方法で使ってきましたが、Systemdのデーモン(Service)化すると異常停止時に再起動したり、ログを残せたり簡単に再起動できたりと良いことずくめなのでデーモン化することとしました。

 

 

 

起動スクリプト

まず、起動用のスクリプトを用意します。

基本的にはゲームサーバーのメインのバイナリをオプションと一緒に起動するだけのシェルスクリプトになります。

今回はフィヨルドのマップにしました。

 

 

 

保存する場所はどこでもいいですが、私はoptに置きました。

/opt/ark/bin/Fjordur.sh

 

Serviceの登録

次に、サービスとして登録していきます。

登録の仕方は以下のディレクトリに(サービス名).serviceというUnit定義ファイルを作成するだけです。

/etc/systemd/system/

 

今回はフィヨルドマップなので「ark_fjordur.service」という名前にしました。

内容は以下の通りです。

 

Restartのところをon-failureとすることで異常終了した際に再起動するようにしています。

ExecStartで先ほど作成したスクリプトを指定してあげます。

 

これで基本的にはServiceの登録は終了です。

 

Serviceの起動

次に登録したサービスを起動していきます。

基本的には管理者権限が必要となります。(sudo必要)

まずはサービスの有効化をします。

sudo systemctl enable ark_fjordur

これで有効化されます。

 

次に起動します。

sudo systemctl start ark_fjordur

これで起動されます。

あとは基本的にはずっと起動してくれます。

 

状態を確認するには以下のコマンドを使用します。

sudo systemctl status ark_fjordur

以下のように状態を確認できます。

● ark_fjordur.service - ARK Fjordur Game Server
     Loaded: loaded (/etc/systemd/system/ark_fjordur.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-07-16 11:44:51 JST; 12h ago
   Main PID: 3628739 (Fjordur.sh)
      Tasks: 17 (limit: 4584)
     Memory: 3.0G
     CGroup: /system.slice/ark_fjordur.service
             ├─3628739 /bin/bash /opt/ark/bin/Fjordur.sh
             └─3628740 /home/akira/Steam/servers/ark/ShooterGame/Binaries/Linux/ShooterGameServer Fjordur?listen?SessionName=YokohamaKaitaku?ServerPassword=Kaitakumin?ServerAdminPassword=KatakuminAdmin -server -log

 7月 16 11:44:51 v133-18-232-25 systemd[1]: Started ARK Fjordur Game Server.
 7月 16 11:44:52 v133-18-232-25 ark_fjordur[3628740]: [S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
 7月 16 11:44:53 v133-18-232-25 ark_fjordur[3628740]: Setting breakpad minidump AppID = 346110

 

Serviceの停止・再起動

サーバーのアップデート等で停止・再起動が必要になりますが以下のコマンドで行うことができます。

 

停止

sudo systemctl stop ark_fjordur

 

再起動

sudo systemctl restart ark_fjordur

 

以上、ARKサーバーのデーモン化でした。