テイム中や洞窟の攻略中にゲームサーバーの再起動が起こらないよう、ゲームサーバーの再起動は予告してから実施するようにしましょう。
POK-managerで運用しているASAサーバーなら、カウントダウン付きの告知は-restartコマンドに分数を渡すだけで済みます。
この記事では、手動での予告再起動・毎日決まった時刻の自動再起動・本体更新時の予告という3つの場面を整理します。
手動で予告つき再起動をする
分数を指定して実行すると、その分数のカウントダウンが始まります。
./POK-manager.sh -restart 10 <インスタンス名>分数を省略すると5分で動きます。全インスタンスをまとめて再起動する場合はインスタンス名の代わりに-allを指定します。
告知はどう流れるか
まず開始時に、次の内容がゲーム内へ送られます。
SERVER ANNOUNCEMENT: Prepare for restart in 10 minutes. Please finish your current activities.
そのあと、残り時間が区切りに達するたび、通知を流します。
| 区切り |
|---|
| 5分単位(指定した分数から5分まで) |
| 3分前・1分前・30秒前 |
| 最後の10秒(10・9・8…1) |
流れる文面はServer restart in <残り時間>!の形式です。終盤の刻みが細かいため、参加者は安全な場所へ移動する判断がしやすくなります。
実際に-restart 1を実行すると、次のように進みます。
Beginning restart countdown: 1 minutes
Server notification: 1 minute(s) remaining
Server notification: 30 seconds remaining
Server notification: 10 seconds remaining
Server notification: 9 seconds remaining
...
任意のメッセージを送る
告知とは別に、好きな文面をゲーム内チャットへ流せます。
./POK-manager.sh -chat "メンテナンスのため10分後に再起動します" <インスタンス名>再起動の理由や、復帰の目安時刻を添えるときに使います。
毎日決まった時刻に再起動する
定期再起動はcronに登録します。予告つきのコマンドをそのまま呼ぶだけです(時刻の書式はcronジェネレーターで組み立てられます)。
crontab -e次の例は、毎日午前5時に再起動し、その10分前(4時50分)から告知を始める設定です。
50 4 * * * cd /home/<ユーザー名>/asa-server && ./POK-manager.sh -restart 10 <インスタンス名>コマンドを実行した時点からカウントダウンが始まるため、「再起動したい時刻」ではなく「告知を始めたい時刻」を書く点に注意してください。
時刻はコンテナのタイムゾーンではなく、cronを動かすホスト側の時刻で解釈されます。日本時間で運用するなら、ホストのタイムゾーンがJSTになっているか確認しておきます。
timedatectl | grep "Time zone"本体更新にともなう再起動
POK-managerは、設定しておけばサーバー本体の更新を自動で確認します。更新が見つかると再起動が必要になるため、その予告時間をRESTART_NOTICE_MINUTESで決めます(既定は30分)。
- UPDATE_SERVER=TRUE
- CHECK_FOR_UPDATE_INTERVAL=24
- UPDATE_WINDOW_MINIMUM_TIME=12:00 AM
- UPDATE_WINDOW_MAXIMUM_TIME=11:59 PM
- RESTART_NOTICE_MINUTES=30UPDATE_WINDOW_...は更新を適用してよい時間帯です。既定は終日のため、プレイ中に更新が入るおそれもあります。参加者の少ない時間帯へ寄せておくと影響を抑えられます。
MOTDとの使い分け
参加時に表示されるメッセージ(MOTD)は、再起動の告知とは別物です。
| 用途 | 設定 | |
|---|---|---|
| MOTD | 参加した瞬間に一度だけ表示 | ENABLE_MOTD / MOTD / MOTD_DURATION |
| チャット告知 | プレイ中の全員へ随時 | -chat / -restart の自動告知 |
「毎日5時に再起動します」のような常設の案内はMOTD、「あと10分で落とします」のようなその場の連絡はチャット、と役割を分けると分かりやすくなります。
MOTDをiniに直接書く場合は、ASAサーバーの設定例にある[MessageOfTheDay]が該当します。
よくある質問
再起動中はどれくらい落ちますか
サーバー本体の起動自体は短時間で、検証環境では約51秒でした。ただし更新をともなう場合はダウンロードの時間が加わります。
まとめ
-restart <分>だけでカウントダウン告知が流れる。刻みは5分単位→3分→1分→30秒→最後の10秒- 定期再起動はcronに
-restartを登録する。書くのは「告知開始時刻」 - 自動更新の予告時間は
RESTART_NOTICE_MINUTES(既定30分)。更新の時間帯も絞れる - 常設の案内はMOTD、その場の連絡はチャットと使い分ける
サーバーの構築はLinux VPSでの立て方かPOK-manager、MODの追加はASAサーバーへのMOD導入をどうぞ。