2. Basics

Game servers can consume a lot of CPU and bandwidth (depending on the game and the number of connected players). If you don't own the machine and want to run a server from your account, ask the system administrator first.

2.1. Security and permissions

All dedicated servers are strongly recommended to be run from another user than root. I recommend that you create a new user that handles all the game servers. You may not have permission to create certain directories mentioned in this document as a normal user, for example /usr/local/games/quake3. If so, create it as root and then chown user:group /usr/local/games/quake, where user is your username and group your group, or simply create it in your home directory.

2.2. Keeping the server running

If your game server crashes, a shell script like the one below might come in handy so you won't have to restart it manually. It can easily be modified for whatever server(s) you're running.

#!/bin/sh

quake3dir="/usr/local/games/quake3"
process=`ps auxw | grep linuxq3ded | grep -v grep | awk '{print $11}'`

if [ -z "$process" ]; then

  echo "Couldn't find Quake3 running, restarting it."
  cd "$quake3dir"
  nohup ./linuxq3ded +exec ffa.cfg &
  echo ""

fi

Put the script somewhere, name it sv_up or whatever you like, and make cron run it every 5-10 minutes:

*/10 * * * * /usr/local/games/quake3/sv_up.sh >/dev/null 2>&1

Put this in crontab (crontab -e). It will execute sv_up.sh (the shell script above) every 10 minutes and its output is sent to /dev/null (in other words, it disappears instead of being mailed to you).