Left 4 Dead 2 dedicated server Steam authentication problems

debian-wheezygameserverlibraries

I'm running a game dedicated server for the Valve game Left 4 Dead 2 on my housed root server. I had one running for years back when I was still running Debian Squeeze (6, oldstable, x86_64) on my servers and wanted to set one up again now on Debian Wheezy (7, stable, multiarch x86/x86_64). When running the server I see some error messages and noone seems to be able to connect to the server.

I start the dedicated server with the following command:

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

When starting the dedicated server process I see the following lines in the output:

[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.

And after some probably unrelated cable-noise-like blobs of text:

[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

The server is configured as a Steam Group server (I have some echo commands in the config file and know that it has been successfully loaded) and should be visible to anyone in the referenced group who is ingame. It doesn't show up, nor can I join manually by issuing the ingame command connect 1.2.3.4:27016. The respective UDP port is open on the system firewall.

Some months ago Valve replaced their hldsupdatetool utility for downloading the game server files with a new tool called SteamCMD, this tool, according to a Valve mailing list announcement, is now mandatory.

I used the following command to install the game server:

cd /opt/left4dead2
sudo -u l4d2 steamcmd/steamcmd.sh +login anonymous +force_install_dir .. +app_update 222860 validate +quit

I managed to get rid of the last three lines by creating the directories /opt/left4dead2/.steam/sdk32 and copying the steamclient.so from /opt/left4dead2/steamcmd/linux32/ to that location, which was described as a solution to the problem here. But I still cannot connect to the server at all.

I hope someone can help me with this and that Server Fault is the right place for such a problem. I didn't see any better matching Stack Exchange branch to post it on.

Best Answer

Googling the error gives the following:

You may get the following error when starting a Server with Linux

[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.

Resolve the issue by copying steamclient.so to the ~/.steam/sdk32/steamclient.so directory

cp steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so

https://developer.valvesoftware.com/wiki/SteamCMD#Running_SteamCMD

Related Topic