前回までの記事はこちらとなります。
こんにちは。前回の記事ではサーバの設定を変更するまでを実施しました。
この記事では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回に変更しました。以降快適ではあります。
さいごに
あとはルータのポート開放設定を行えば完了です。
ルータの設定については各家庭で使っているものが異なり設定方法も変わります。
可能な範囲で後日記事にできればと思います。

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