収容しているルートサーバーで、ValveゲームLeft 4 Dead2専用のゲームサーバーを実行しています。サーバーでDebianSqueeze(6、oldstable、x86_64)を実行していたときに、何年も前に実行していたものを、Debian Wheezy(7、安定版、マルチアーチx86/x86_64)で再度セットアップしたいと考えていました。サーバーを実行しているときに、いくつかのエラーメッセージが表示され、誰もサーバーに接続できないようです。
次のコマンドで専用サーバーを起動します。
Sudo -u l4d2 /opt/left4dead2/srcds_run -Steam_dir /opt/left4dead2/steamcmd -steamcmd_script /opt/left4dead2/left4dead2.steamcmd -autoupdate -ip 1.2.3.4 -port 27016
専用サーバープロセスを開始すると、出力に次の行が表示されます。
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.
そして、おそらく無関係なケーブルノイズのようなテキストの塊の後:
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
dlopen failed trying to load:
/opt/left4dead2/.Steam/sdk32/steamclient.so with error:
/opt/left4dead2/.Steam/sdk32/steamclient.so: cannot open shared object file: No such file or directory
サーバーはSteamグループサーバーとして構成され(構成ファイルにいくつかのechoコマンドがあり、正常にロードされたことを知っています)、ゲーム内にいる参照グループのすべての人に表示されるはずです。表示されません。また、ゲーム内コマンドconnect 1.2.3.4:27016
を発行して手動で参加することもできません。それぞれのUDPポートはシステムファイアウォールで開いています。
数か月前、Valveはゲームサーバーファイルをダウンロードするためのhldsupdatetool
ユーティリティを SteamCMD という新しいツールに置き換えました。Valveメーリングリストの発表によると、このツールは現在必須です。
次のコマンドを使用してゲームサーバーをインストールしました。
cd /opt/left4dead2
Sudo -u l4d2 steamcmd/steamcmd.sh +login anonymous +force_install_dir .. +app_update 222860 validate +quit
ディレクトリ/opt/left4dead2/.Steam/sdk32
を作成し、steamclient.so
を/opt/left4dead2/steamcmd/linux32/
からその場所にコピーすることで、最後の3行をなんとか取り除くことができました。これは、問題の解決策として説明されています ここ 。しかし、それでもサーバーにまったく接続できません。
誰かがこれを手伝ってくれることを願っています。サーバー障害がそのような問題の適切な場所であることを願っています。投稿するのに適したStackExchangeブランチは見つかりませんでした。
エラーをグーグルで検索すると、次のようになります:
Linuxでサーバーを起動すると、次のエラーが発生する場合があります
[S_API FAIL] SteamAPI_Init()が失敗しました。 Steamの実行中のインスタンスまたはローカルのsteamclient.dllが見つかりません。
Steamclient.soを〜/ .Steam/sdk32/Steamclient.soディレクトリにコピーして、問題を解決します
cp Steamcmd/linux32/Steamclient.so〜/.Steam/sdk32/Steamclient.so
https://developer.valvesoftware.com/wiki/SteamCMD#Running_SteamCMD