Game Server Startup Script GSSS Jason Jorgensen Version 1.1 1. Introduction 2. Installation 3. Usage 4. Copyright ----------------------------------------- 1. Introduction GSSS was written becuase I wanted a way to start up a variety of games in a standard way. Then I also wanted to make sure the games stayed running even after a crash. So I wrote this perl script. It will start games and through a cron job make sure they stay running. If you have qstat installed it can also verify the game is running like it is suppose to be and not in some strange state where no one can play. If the game is running but unresponsive, it kills it and starts it again. You can also stop running games cleanly as well. A list of games I have tested to work with this script: Quake2 Quake3 RTCW Half Life Unreal UT2K3 UT2K4 Tribes 2 NWN BF1942 ET (Let me know if you have gotten other games to work) The latest version of GSSS is available at http://www.innominatus.com Sorry for the rough (anti-newbie, debian centric) readme file. ----------------------------------------- 2. Installation - Create a user that will run your games. Root is not a good choice. "adduser gameserver" - Then make sure all your installed games are owned by gameserver "chown gameserver:gameserver -R /usr/local/games" - Make sure you have qstat install so GSSS can validate the games are running correctly. "apt-get install qstat" - Copy the included files to the directories specified by the directory structure. I put them in /etc - I have included some examples of configurations to start games that I have used. Modify as need. You will need to know all the ports that your game will be using. Even the ports players dont connect to but are opened up for other reasons. You will also need to know what the running process name of the binary will be. Some games are launched from a wrapper script and have a different name than the running process. Once you have that info you should be able to setup the config file. ----------------------------------------- 3. Usage If the game is in a working state and you have configured GSSS correctly you interact with it like any other startup script games list - lists all game configuration files available games start - starts all games games start [name(s)] - starts only the specified configuration(s) games stop - stops all games games stop [name(s)] - stops only the specified configuration(s) games restart - restarts all games games restart [name(s)] - restarts only the specified configuration(s) games status - will use qstat to retreive the current status of your running games games fix - will use qstat to identify any failed games, then restart them games cronfix - similar to fix, but is run from cron and has to see the game broken twice to restart "*/5 * * * * root /etc/init.d/games cronfix" in /etc/crontab to run every 5 minutes ----------------------------------------- 4. Copyright GSSS Copyright 2003 Jason Jorgensen, jasonj@innominatus.com This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.