NEVRAX NeL Network Services Howto 23/01/2001 cado@nevrax.com $Id: HOWTO,v 1.1 2001/04/18 13:54:25 valignat Exp $ ---------- The NEVRAX NeL Network Services is made up of one unique login service, one or several shards (aka game servers), and a few utility services. In this document, we'll assume you want to run your login service and one shard on the same machine. You can't launch more than one shard on a computer. Services are compiled in debug mode by default. Once you have compiled the servers, you should have the following files (shown in Unix naming scheme, for Windows add ".exe") in a single directory (let's call it homedir/bin): naming_service -> used to find a specific service by its name log_service -> centralized logger for all services time_service -> centralized time reference manager login_service -> centralized user account manager for all shards (admin_executor_service -> collects system stats (agent_service -> agent message router 1. In the working directory (e.g. homedir), create the following files (don't type the lines beginning with "-") -- ns.cfg -- Host = "hostname_of_your_machine_where_naming_service_will_run"; Port = 50000; ------------ (This file is used by all services) -- ls.txt -- Shards = { "hostname_of_your_machine_where_game_service_will_run", "Name of the shard as it will appear on the client" }; ------------ (This file is used by login_service) 2. Launch the servers. Here is a sample batch file, where you can find the right ordering : -- starts -- nohup ~/bin/naming_service >/dev/null nohup ~/bin/log_service >/dev/null nohup ~/bin/time_service >/dev/null nohup ~/bin/login_service >/dev/null echo "Active services:" ps -edf | grep _service | grep -v grep echo "End services" ------------ 3. To connect a client to your new shard, set LSHost = "hostname_of_your_machine_where_login_service_runs"; in its client.cfg and create ns.cfg with the same contents as for the servers. Then launch the client and enjoy :-) 4. The services create/modify the following config or log files: - unitime.cfg (time_service) Contains the time reference - ls.txt (login_service) Every time a new user (not registered before) logs in, its login and password are saved into ls.txt - ls.log (login_service) Every time someone logs in, its configuration information is saved into ls.log - logs.log (very big especially if you have compiled the servers with NL_DEBUG defined) (log_service) Contains all debug information sent by the services. 5. How to shutdown the services Here is a sample batch file: -- kills -- kill -INT `ps -edf | grep bin/login_service | grep -v grep | tr -s " " | cut -d' ' -f2` sleep 1 kill -INT `ps -edf | grep bin/time_service | grep -v grep | tr -s " " | cut -d' ' -f2` sleep 1 kill -INT `ps -edf | grep bin/log_service | grep -v grep | tr -s " " | cut -d' ' -f2` sleep 1 kill -INT `ps -edf | grep bin/naming_service | grep -v grep | tr -s " " | cut -d' ' -f2` -- kills --