fs_basepath & fs_homepath (was: Re: [cod] install help?)
Joe Brown
joe at overdrivepc.com
Tue Jan 20 09:32:24 EST 2004
Here's how I go about managing mutiple servers on one box, HTH:
Install cod (to an fs_basepath) /usr/games/cod
+set fs_basepath /usr/games/cod
Customized config and other server files are stored in home directories
+set fs_homepath /home/cod1/cod
Install cod/q3/wolfenstien (id based games work like this) and run
mutiple servers based on one install of the original files and mods via
fs_basepath specification. fs_homepath contains only .cfg files
relavent to any given server.
fs_basepath:
Contains original install of cod and is also handy to place a public.cfg
(common sets for all servers) exec it via each server's myconfig.cfg.
fs_homepath:
Custom configs (myconfig.cfg) placed in
/home/cod1/cod/main/myconfig.cfg. Log files etc. will be located in the
homepath.
The search order is like this if +set fs_game mod1:
/usr/home/cod1/cod/mod1
/usr/home/cod1/cod/main
/usr/games/cod/mod1
/usr/games/cod/main
with no mod, it's:
/usr/home/cod1/cod/main
/usr/games/cod/main
Anything in the fs_homepath overrides the same thing in fs_basepath,
because the homepath is searched first, so if you need to customize
something, place it in on servers homepath, of if it needs to be
customized for all servers then place it in the basepath.
Recommend one user for each server.
adduser cod1
adduser cod2
...
Start server forever via start_server.sh in home folder of cod1, cod2 ...
----$HOME/start_server.sh
cd $HOME/cod
export PATH=/usr/games/cod:$PATH
while [ 1 ]
do
./cod_lnxded +set dedicated 2 +set net_ip IP +set net_port PORT +set
fs_basepath /usr/games/cod +set fs_homepath $HOME/cod +exec
myconfig.cfg +set map_rotate
sleep(20)
done
----end of file
Here's some helper scripts for root:
To start individual servers, start_server.sh cod1 or start_server.sh
cod2...:
----/root/bin/start_server.sh
su -l $1 -c "screen -m -d /bin/bash ./start_server.sh"
----end of file
To start all servers after a reboot run ./start_all_servers.sh
----/root/start_all_servers.sh
/root/bin/start_server.sh cod1
/root/bin/start_server.sh cod2
....
----end of file
Manging mutiple servers is fairly easy via screen running under each user.
Once I login as root I type 'w' to find out which (tty) terminal I'm on
[root at cod_server root]# w
07:29:31 up 11 days, 23:06, 1 user, load average: 0.00, 0.02, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/2 adslct22 7:22am 0.00s 0.06s 0.02s w
This is to allows other users to write to the screen
[root at cod_server root]# chmod 0666 /dev/pts/2
Switch to game server user
[root at cod_server root]# su -l cod1
Connect to the game server
[cod1 at cod_server cod1]$ screen -r
do whatever
[ctrl-a][ctrl-d]
[cod1 at cod_server cod1]$ exit
[root at cod_server root]# su -l cod2
...
-Joe
More information about the Cod
mailing list