www.pudn.com > 传奇3源代码.rar > athena-start


#!/bin/sh 
# athena starting script by rowla 
 
PATH=./:$PATH 
 
L_SRV=login-server 
C_SRV=char-server 
M_SRV=map-server 
L_SRV_C=./conf/login_athena.conf 
C_SRV_C=./conf/char_athena.conf 
C_SRV_C2=./conf/inter_athena.conf 
M_SRV_C=./conf/map_athena.conf 
M_SRV_C2=./conf/battle_athena.conf 
M_SRV_C3=./conf/atcommand_athena.conf 
M_SRV_C4=./conf/script_athena.conf 
M_SRV_C5=./conf/msg_athena.conf 
M_SRV_C6=./conf/grf-files.txt 
 
print_start() { 
#	more << EOF 
echo "Athena Starting..." 
echo "			(c) 2003 Athena Project." 
echo "			URL:http://project-yare.de/" 
echo "" 
echo "Debug informations will appear," 
echo "since this is a test release." 
echo "" 
echo "checking..." 
#EOF 
} 
 
check_account() { 
	if [ ! -f ./save/account.txt ]; then 
		echo "0	s1	p1	-	S	0" > save/account.txt 
		echo "1	s2	p2	-	S	0" >>save/account.txt 
		echo "2	s3	p3	-	S	0" >>save/account.txt 
		echo "3	s4	p4	-	S	0" >>save/account.txt 
		echo "4	s5	p5	-	S	0" >>save/account.txt 
	fi 
} 
 
check_files() { 
 
	for i in ${L_SRV} ${C_SRV} ${M_SRV} ${L_SRV_C} ${C_SRV_C} ${C_SRV_C2} ${M_SRV_C} ${M_SRV_C2} ${M_SRV_C3} ${M_SRV_C4} ${M_SRV_C5} ${M_SRV_C6} 
	do 
		if [ ! -f ./$i ]; then 
    		echo "$i does not exist, or can't run." 
    		echo "Stoped, Check your compile or configuration file." 
    		exit 1; 
		fi 
	done 
 
#	more << EOF 
echo "Check done." 
echo "Looks good, have a nice athena!" 
#EOF 
} 
	 
 
case $1 in 
	'start') 
		print_start 
		check_account 
		check_files 
 
		exec ./${L_SRV} ${L_SRV_C}& 
#		exec ./${C_SRV} ${C_SRV_C} ${C_SRV_C2} > /dev/null& 
#		exec ./${M_SRV} ${M_SRV_C} ${M_SRV_C2} > /dev/null& 
		exec ./${C_SRV} ${C_SRV_C} ${C_SRV_C2}& 
		exec ./${M_SRV} ${M_SRV_C} ${M_SRV_C2} ${M_SRV_C3} ${M_SRV_C4} ${M_SRV_C5} ${M_SRV_C6}& 
 
		echo "Now Started Athena." 
;; 
	'stop') 
		ps ax | grep -E "${L_SRV}|${C_SRV}|${M_SRV}" | awk '{print $1}' | xargs kill -9 
		while	[ "      0" != "$(ps | grep -e login | wc -l)" ] || 
			[ "      0" != "$(ps | grep -e char | wc -l)" ] || 
			[ "      0" != "$(ps | grep -e map  | wc -l)" ]; do 
			sleep 1 
		done 
	;; 
	'restart') 
		$0 stop 
		$0 start 
	;; 
	*) 
		echo "Usage: athena-start { start | stop | restart }" 
	;; 
esac