Running a NMRiH Dedicated Server on Linux
Install 32-bit dependencies, run NMRiH on Linux with srcds_run, set up a systemd service for auto-restart, and keep the server updated.
Running NMRiH on Linux
NMRiH's SRCDS binary is 32-bit, which requires 32-bit system libraries on 64-bit Linux hosts. Missing these libraries is the most common cause of server startup failure on Linux.
Install 32-bit Dependencies
Debian / Ubuntu:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install lib32gcc-s1
On older Debian/Ubuntu releases the package may be named lib32gcc1. If lib32gcc-s1 is not found, try:
sudo apt-get install lib32gcc1
CentOS / RHEL / Fedora:
sudo yum install glibc.i686 libstdc++.i686
Install SteamCMD
mkdir ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
Install the Server Files
./steamcmd.sh +force_install_dir /home/steam/nmrih-server \
+login anonymous \
+app_update 317670 validate \
+quit
Launch the Server
Always use srcds_run on Linux, not ./srcds directly. srcds_run is a wrapper script that handles crash restarts and the -autoupdate flag.
cd /home/steam/nmrih-server
./srcds_run -console \
-game nmrih \
-maxplayers 8 \
+map nmo_broadway \
-autoupdate \
+sv_setsteamaccount YOUR_TOKEN
The -autoupdate flag causes srcds_run to check for Steam updates and re-download changed files before restarting after a crash. This keeps your server current without manual intervention.
Systemd Service
Create a systemd service to run the server in the background and restart it automatically on failure.
Create /etc/systemd/system/nmrih.service:
[Unit]
Description=No More Room in Hell Dedicated Server
After=network.target
[Service]
Type=simple
User=steam
WorkingDirectory=/home/steam/nmrih-server
ExecStart=/home/steam/nmrih-server/srcds_run \
-console \
-game nmrih \
-maxplayers 8 \
+map nmo_broadway \
-autoupdate \
+sv_setsteamaccount YOUR_TOKEN
Restart=on-failure
RestartSec=15s
[Install]
WantedBy=multi-user.target
Enable and start:
sudo systemctl daemon-reload
sudo systemctl enable nmrih
sudo systemctl start nmrih
View live output:
sudo journalctl -u nmrih -f
Updating the Server
To manually update:
sudo systemctl stop nmrih
/home/steam/steamcmd/steamcmd.sh \
+login anonymous \
+force_install_dir /home/steam/nmrih-server \
+app_update 317670 validate \
+quit
sudo systemctl start nmrih
With -autoupdate in the service, the server checks for updates on each restart automatically. The manual process above is useful when you want to update during a scheduled maintenance window.
File Permissions
Ensure the steam user owns all server files:
sudo chown -R steam:steam /home/steam/nmrih-server
If srcds_run exits immediately with no error, a permissions issue on the server directory is a common cause.