2. Basics

Game servers can consume pretty much CPU and bandwidth (depending on the game and the number of players connected to your server). 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 which handles all the game-servers. You may not have permission to create certain directories as a normal user, for example /usr/local/games/quake. 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 create it in your home directory.

2.2. Keep the server running

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

!/bin/sh

quake3dir="/usr/local/games/quake3"
binname="linuxq3ded"
cd $quake3dir
process=`ps auxwww | grep inet | grep -v grep | awk '{print $12}'`

if [ -z process ]; then

  echo "Couldn't find quake 3 running. Restarting it"
  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 min:

*/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).