我正在我的房屋根服务器上运行Valve游戏Left 4 Dead 2的游戏专用服务器。 当我还在我的服务器上运行Debian Squeeze(6,oldstable,x86_64)时,我有一个运行多年的计算机,现在想要在Debian Wheezy(稳定的多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
服务器被configuration为一个Steam组服务器(我在configuration文件中有一些echo命令,并且知道它已经被成功加载),并且应该对参与组中的任何人都可见。 它不显示,也不能通过发出connect 1.2.3.4:27016命令connect 1.2.3.4:27016手动join。 相应的UDP端口在系统防火墙上打开。
几个月前,Valve用一个名为SteamCMD的新工具取代了他们的hldsupdatetool工具,用于下载游戏服务器文件,根据Valve邮件列表公告,这个工具现在是强制性的。
我用下面的命令来安装游戏服务器:
cd /opt/left4dead2 sudo -u l4d2 steamcmd/steamcmd.sh +login anonymous +force_install_dir .. +app_update 222860 validate +quit
我设法通过创build/opt/left4dead2/.steam/sdk32目录和从/opt/left4dead2/steamcmd/linux32/将/opt/left4dead2/steamcmd/linux32/到该位置来摆脱最后三行,这被描述为解决scheme这里的问题。 但我仍然无法连接到服务器。
我希望有人可以帮助我,这个服务器故障是这个问题的正确的地方。 我没有看到任何更好的匹配的堆栈交换分支张贴它。
谷歌search错误给出了以下内容:
使用Linux启动服务器时可能会出现以下错误
[S_API FAIL] SteamAPI_Init()失败; 无法find正在运行的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