SystemD 24/7を使用してゲームサーバーを実行するには?

SystemD 24/7を使用してゲームサーバーを実行するには?

私はLinux(CentOS 7.2)に初めて触れました。

この素晴らしい機能を使用できるようにHurtworldサーバーを実行しようとしています。ただし、複数のサーバーを運用するために別々のセッションを使用する必要があったことを思い出してください。systemdrestart=alwaysHWtmux

これは私のサーバー起動スクリプトの1つです。

#!/bin/bash
tmux new -d -s hurtworld5 '
./Hurtworld.x86_64 -batchmode \
-nographics \
-exec "host 15871;queryport 15872;servername [EU/US] <color=#f50>HURTCRAFT.com X1/VANILLA INF 25.05</color>  www.hurtcraft.com;maxplayers 120;addadmin 76561197987029828;structurecomplexitylimit 100000;targetfps 60;spawncooldown -0.1 20;combatlogtimeout 30;afkkicktime 260000;chatconnectionmessagesenabled 0;vehicledecaytime 86400;stakedeauthtime 518400" \
-logfile "gamelog.txt"
'tmux detach -s hurtworld5

このスクリプトはサーバーを実行するのに適していますが、どのバリアントや抜粋を使用しても渡すことはできませんsystemd。私が得ることができる最善は、実際の実行可能HurtworldServerファイルを実行することですが、すぐに消えます。私はこれがこの方法では実行できないからだと思いますtmux。サーバーが動作するまでサーバーを操作しようとしている間、まさにこのような問題があったことを覚えておいてくださいtmux

tmuxそのため、作成したセッションからアプリケーションを起動する方法を知る必要があるようですsystemd。ただし、systemdサーバーの実行可能ファイルを基本プロセスとして登録しない新しい問題が発生すると予想されるため、restart = alwaystmuxはサーバーがシャットダウンした場合にのみ再起動されますか?

私が岩と大変な場所の間に閉じ込められたようで、それが私の脳を乱すようです。それで、dedi私がこれを得て以来、あなたが学んだ偉大な天才のどれも、私がこれを理解するのを助けたいと思います。出たら本当に嬉しくて感謝しそうです。

私はスクリプトを使用し、実際のプロセスを別の方法で追跡するオプションを提供したり、このようなupstartものを喜んで使用したりします。monit

答え1

だから私はすべてが大丈夫です

[Unit]
Description=HW1SVC
After=network.target

[Service]
Type=simple
User=servers2
WorkingDirectory=/data/steamcmd/hw6/
ExecStart=/data/steamcmd/hw6/Hurtworld.x86_64 -batchmode -nographics -exec "autoexec.cfg" -logfile "gamelog.txt"
KillSignal=SIGINT
TimeoutStopSec=30
Restart=always

[Install]
WantedBy=network.target

誰かに役立つ場合に備えて動作する.serviceファイルは次のとおりです。私は問題が最終的に欠落している作業ディレクトリパラメータによって引き起こされたと思いますが、正直にはわかりません。助けてくれたDaveには本当にありがとう!

関連情報