【定期自動再起動】パルワールドサーバ構築日記【Ubuntu】-Part3/3

未分類

前回までの記事はこちらとなります。

こんにちは。前回の記事ではサーバの設定を変更するまでを実施しました。

この記事では1日1回サーバ再起動を自動でできるようにした際の備忘です。

お使いの環境に合わせご対応くださいね。

サーバ起動シェルの作成

まずサーバ起動用のシェルを作成しました。

私はこちらもいつものようにサクラエディタで作成し、TeraTarmのSSH SCP機能でファイルを転送します。

#!/bin/bash

# ディレクトリ移動
$cd /home/user/Steam/steamapps/common/PalServer

# サーバーを起動
$./PalServer.sh -publiclobby -EpicApp=PalServer

ファイル名はstart.shです。
任意の場所(ここでは/home/user/start.shとします)に格納し、権限を付与します。

$chmod +x /home/user/start.sh

パルサーバを停止している状態で実行してみます。

$/home/user/start.sh

問題なければサーバが起動するはずです。

ホームディレクトリにおいておけば、ログインして./start.shと打つだけでサーバが起動するのでこれだけでも助かる

start.shをサービス化する

start.shを実行する予定のユーザで以下を実行していく。

サービス作成。

sudo vi /etc/systemd/system/palserver.serviceで、以下のファイルを作成。

[Unit]
Description=Palworld Dedicated Server
After=network.target

[Service]
Type=simple
User=user
WorkingDirectory=/home/user/Steam/steamapps/common/PalServer
ExecStart=/home/user/start.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
$sudo EDITOR=vi visudo
最終行に以下を追加
user ALL=(ALL) NOPASSWD: /bin/systemctl restart palserver

user 部分は実行するユーザ名となります。

こちらを追記することで、sudo systemctl restart palserverをsudoなしに実行できるようになります。

※セキュリティに関わる設定なので変更する際は注意

$EDITOR=vi crontab -e
最終行に以下を追加
0 5 * * * /usr/bin/sudo /bin/systemctl restart palserver
#毎日5時にsystemclt restart palserverを実行

cronに毎日5時にパルサーバ再起動を実行するように記述します。

ついでにpalserver.serviceを自動起動するようにしておきましょう。

$sudo systemclt enable palserver.service

パルサーバを起動させておきます

$sudo systemctl start palserver.service

sudo systemctl status palserver.serviceでステータスを確認できます。

active(running)になっていればパルサーバが起動しています。

$ sudo systemctl status palserver.service
[sudo] password for user:
 palserver.service - Palworld Dedicated Server
     Loaded: loaded (/etc/systemd/system/palserver.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2025-06-25 22:15:48 JST; 18h ago
   Main PID: 738 (start.sh)
      Tasks: 37 (limit: 38375)
     Memory: 4.4G
        CPU: 8h 14.075s
     CGroup: /system.slice/palserver.service
             tq738 /bin/bash /home/user/start.sh
             tq785 /bin/sh ./PalServer.sh -publiclobby -EpicApp=PalServer
             mq801 /home/user/Steam/steamapps/common/PalServer/Pal/Binaries/Linux/PalServer-Linux-Shipping Pal -publiclobby -EpicApp=PalServer

あとは/var/log/syslogなどをみて、設定した時間にcronが実行されているか確認しましょう。

$ cat /var/log/syslog | grep "/bin/systemctl restart palserver"
Jun 22 05:00:01 tlgcpalserver CRON[18173]: (user) CMD (/bin/systemctl restart palserver)
Jun 23 05:00:01 tlgcpalserver CRON[20790]: (user) CMD (/bin/systemctl restart palserver)
Jun 24 05:00:01 tlgcpalserver CRON[22871]: (user) CMD (/bin/systemctl restart palserver)
Jun 25 05:00:01 tlgcpalserver CRON[25254]: (user) CMD (/bin/systemctl restart palserver)
Jun 26 05:00:01 tlgcpalserver CRON[1686]: (user) CMD (/bin/systemctl restart palserver)

毎日5時に実行されていることがわかります。

始めは週2回のサーバ再起動をしていたのですが、それだとすぐゲーム動作が重くなるので1日1回に変更しました。以降快適ではあります。

さいごに

あとはルータのポート開放設定を行えば完了です。

ルータの設定については各家庭で使っているものが異なり設定方法も変わります。

可能な範囲で後日記事にできればと思います。

この記事がパルワールドサーバ構築の役に立ちますと幸いです。

灯音(tomone)

自作PC歴は20年。
ゲームを生きがいに日々楽しんでいます。
 

最近はPCゲームもどんどん増えてきて「遊びたいゲームがあるけどどんなPCを買えばいいの?」と悩む人も多いのではないでしょうか。
そんな方に向けて、ゲームやPCに関する情報をわかりやすく発信していきたいと思っています。
 

よかったら、ぜひ記事も読んでみてくださいね。

灯音(tomone)をフォローする
未分類
シェアする
灯音(tomone)をフォローする

コメント