|
@@ -1,276 +1,74 @@
|
|
|
#!/bin/sh
|
|
|
# athena starting script by rowla
|
|
|
-
|
|
|
-# chkconfig: 345 99 01
|
|
|
-# description: start and stop athena service
|
|
|
+# modified by shazeya@syafi.com (NL101541)
|
|
|
|
|
|
PATH=./:$PATH
|
|
|
|
|
|
-L_SRV=./bin/login-server
|
|
|
-C_SRV=./bin/char-server
|
|
|
-M_SRV=./bin/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
|
|
|
+L_SRV=login-server_sql
|
|
|
+C_SRV=char-server_sql
|
|
|
+M_SRV=map-server_sql
|
|
|
|
|
|
print_start() {
|
|
|
-# more << EOF
|
|
|
+# 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 " (c) 2003 Athena Project"
|
|
|
+echo " modified by shazeya@syafi.com"
|
|
|
echo ""
|
|
|
+#echo "Debug informations will appear,"
|
|
|
+#echo "since this is a test release."
|
|
|
+#echo ""
|
|
|
echo "checking..."
|
|
|
#EOF
|
|
|
}
|
|
|
|
|
|
-check_account() {
|
|
|
- if [ ! -d ./save ]; then
|
|
|
- mkdir ./save
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -d ./log ]; then
|
|
|
- mkdir ./log
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -d ./conf/import ]; then
|
|
|
- mkdir ./conf/import
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./save/account.txt ]; then
|
|
|
- i=0
|
|
|
- while [ $i -le 4 ];
|
|
|
- do
|
|
|
- echo -e "$i\ts`expr $i + 1`\tp`expr $i + 1`\t-\tS\t0\t0\r" >> save/account.txt
|
|
|
- i=`expr $i + 1`
|
|
|
- done
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./save/athena.txt ]; then
|
|
|
- echo -n > save/athena.txt
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./save/bank.txt ]; then
|
|
|
- echo -n > save/bank.txt
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./save/guild.txt ]; then
|
|
|
- echo -n > save/guild.txt
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./save/party.txt ]; then
|
|
|
- echo -n > save/party.txt
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./save/pet.txt ]; then
|
|
|
- echo -n > save/pet.txt
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./save/storage.txt ]; then
|
|
|
- echo -n > save/storage.txt
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./save/castle.txt ]; then
|
|
|
- i=0
|
|
|
- while [ $i -le 19 ];
|
|
|
- do
|
|
|
- echo -e "$i,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r" >> save/castle.txt
|
|
|
- i=`expr $i + 1`
|
|
|
- done
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./conf/import/atcommand_conf.txt ]; then
|
|
|
- echo -n > conf/import/atcommand_conf.txt
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./conf/import/battle_conf.txt ]; then
|
|
|
- echo -n > conf/import/battle_conf.txt
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./conf/import/char_conf.txt ]; then
|
|
|
- echo -n > conf/import/char_conf.txt
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./conf/import/inter_conf.txt ]; then
|
|
|
- echo -n > conf/import/inter_conf.txt
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./conf/import/login_conf.txt ]; then
|
|
|
- echo -n > conf/import/login_conf.txt
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -f ./conf/import/map_conf.txt ]; then
|
|
|
- echo -n > conf/import/map_conf.txt
|
|
|
- fi
|
|
|
-}
|
|
|
+#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}
|
|
|
- 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!"
|
|
|
+ for i in ${L_SRV} ${C_SRV} ${M_SRV}
|
|
|
+ do
|
|
|
+ if [ ! -f ./$i ]; then
|
|
|
+ echo "$i does not exist, or can't run."
|
|
|
+ echo "Stop. Check your compile."
|
|
|
+ exit 1;
|
|
|
+ fi
|
|
|
+ done
|
|
|
+
|
|
|
+# more << EOF
|
|
|
+echo "Check complete."
|
|
|
+echo "Looks good, a nice Athena!"
|
|
|
#EOF
|
|
|
}
|
|
|
-
|
|
|
-process_check() {
|
|
|
- # check login server
|
|
|
- if [ ! -f ${L_SRV}.pid ]; then
|
|
|
- login=0
|
|
|
- else
|
|
|
- login=`cat ${L_SRV}.pid`
|
|
|
- login=$(ps ax | grep "${L_SRV}" | grep "${login}" | wc -l)
|
|
|
- fi
|
|
|
-
|
|
|
- # check char server
|
|
|
- if [ ! -f ${C_SRV}.pid ]; then
|
|
|
- char=0
|
|
|
- else
|
|
|
- char=`cat ${C_SRV}.pid`
|
|
|
- char=$(ps ax | grep "${C_SRV}" | grep "${char}" | wc -l)
|
|
|
- fi
|
|
|
-
|
|
|
- # check map server
|
|
|
- if [ ! -f ${M_SRV}.pid ]; then
|
|
|
- map=0
|
|
|
- else
|
|
|
- map=`cat ${M_SRV}.pid`
|
|
|
- map=$(ps ax | grep "${M_SRV}" | grep "${map}" | wc -l)
|
|
|
- fi
|
|
|
-
|
|
|
- # echo "check: ${login} ${char} ${map}"
|
|
|
- echo `expr ${login} + ${char} + ${map}`
|
|
|
-}
|
|
|
+
|
|
|
|
|
|
case $1 in
|
|
|
- 'start')
|
|
|
- if [ `process_check` -eq 0 ]; then
|
|
|
- print_start
|
|
|
- check_account
|
|
|
- check_files
|
|
|
+ '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 nice -n -20 ${M_SRV} ${M_SRV_C} ${M_SRV_C2} ${M_SRV_C3} ${M_SRV_C4} ${M_SRV_C5}&
|
|
|
- exec ${M_SRV} ${M_SRV_C} ${M_SRV_C2} ${M_SRV_C3} ${M_SRV_C4} ${M_SRV_C5}&
|
|
|
+ exec ./${L_SRV}&
|
|
|
+ exec ./${C_SRV}&
|
|
|
+ exec ./${M_SRV}&
|
|
|
|
|
|
- echo "Now Started Athena."
|
|
|
- else
|
|
|
- echo "Athena is already running..."
|
|
|
- fi
|
|
|
+ echo "Now Started Athena."
|
|
|
+;;
|
|
|
+ 'stop')
|
|
|
+ ps ax | grep -E "${L_SRV}|${C_SRV}|${M_SRV}" | awk '{print $1}' | xargs kill -9
|
|
|
+;;
|
|
|
+ 'restart')
|
|
|
+ $0 stop
|
|
|
+ $0 start
|
|
|
+;;
|
|
|
+ *)
|
|
|
+ echo "Usage: athena-start { start | stop | restart }"
|
|
|
;;
|
|
|
- 'stop')
|
|
|
- # check map server
|
|
|
- if [ -f ${M_SRV}.pid ]; then
|
|
|
- map=`cat ${M_SRV}.pid`
|
|
|
- map=$(ps ax | grep "${M_SRV}" | grep "${map}" | wc -l)
|
|
|
- if [ ${map} -ne 0 ]; then
|
|
|
- kill `cat ${M_SRV}.pid`
|
|
|
- fi
|
|
|
- fi
|
|
|
-
|
|
|
- # check char server
|
|
|
- if [ -f ${C_SRV}.pid ]; then
|
|
|
- char=`cat ${C_SRV}.pid`
|
|
|
- char=$(ps ax | grep "${C_SRV}" | grep "${char}" | wc -l)
|
|
|
- if [ ${char} -ne 0 ]; then
|
|
|
- kill `cat ${C_SRV}.pid`
|
|
|
- fi
|
|
|
- fi
|
|
|
-
|
|
|
- # check login server
|
|
|
- if [ -f ${L_SRV}.pid ]; then
|
|
|
- login=`cat ${L_SRV}.pid`
|
|
|
- login=$(ps ax | grep "${L_SRV}" | grep "${login}" | wc -l)
|
|
|
- if [ ${login} -ne 0 ]; then
|
|
|
- kill `cat ${L_SRV}.pid`
|
|
|
- fi
|
|
|
- fi
|
|
|
- ;;
|
|
|
- 'kill')
|
|
|
- # check map server
|
|
|
- if [ -f ${M_SRV}.pid ]; then
|
|
|
- map=`cat ${M_SRV}.pid`
|
|
|
- map=$(ps ax | grep "${M_SRV}" | grep "${map}" | wc -l)
|
|
|
- if [ ${map} -ne 0 ]; then
|
|
|
- kill -9 `cat ${M_SRV}.pid`
|
|
|
- fi
|
|
|
- fi
|
|
|
-
|
|
|
- # check char server
|
|
|
- if [ -f ${C_SRV}.pid ]; then
|
|
|
- char=`cat ${C_SRV}.pid`
|
|
|
- char=$(ps ax | grep "${C_SRV}" | grep "${char}" | wc -l)
|
|
|
- if [ ${char} -ne 0 ]; then
|
|
|
- kill -9 `cat ${C_SRV}.pid`
|
|
|
- fi
|
|
|
- fi
|
|
|
-
|
|
|
- # check login server
|
|
|
- if [ -f ${L_SRV}.pid ]; then
|
|
|
- login=`cat ${L_SRV}.pid`
|
|
|
- login=$(ps ax | grep "${L_SRV}" | grep "${login}" | wc -l)
|
|
|
- if [ ${login} -ne 0 ]; then
|
|
|
- kill -9 `cat ${L_SRV}.pid`
|
|
|
- fi
|
|
|
- fi
|
|
|
- ;;
|
|
|
- 'restart')
|
|
|
- if [ `process_check` -eq 0 ]; then
|
|
|
- $0 start
|
|
|
- else
|
|
|
- # check login server
|
|
|
- if [ ! -f ${L_SRV}.pid ]; then
|
|
|
- login=0
|
|
|
- else
|
|
|
- login=`cat ${L_SRV}.pid`
|
|
|
- login=$(ps ax | grep "${L_SRV}" | grep "${login}" | wc -l)
|
|
|
- fi
|
|
|
- if [ ${login} -eq 0 ]; then
|
|
|
- exec ${L_SRV} ${L_SRV_C}&
|
|
|
- fi
|
|
|
-
|
|
|
- # check char server
|
|
|
- if [ ! -f ${C_SRV}.pid ]; then
|
|
|
- char=0
|
|
|
- else
|
|
|
- char=`cat ${C_SRV}.pid`
|
|
|
- char=$(ps ax | grep "${C_SRV}" | grep "${char}" | wc -l)
|
|
|
- fi
|
|
|
- if [ ${char} -eq 0 ]; then
|
|
|
- exec ${C_SRV} ${C_SRV_C} ${C_SRV_C2}&
|
|
|
- fi
|
|
|
-
|
|
|
- # check map server
|
|
|
- if [ ! -f ${M_SRV}.pid ]; then
|
|
|
- map=0
|
|
|
- else
|
|
|
- map=`cat ${M_SRV}.pid`
|
|
|
- map=$(ps ax | grep "${M_SRV}" | grep "${map}" | wc -l)
|
|
|
- fi
|
|
|
- if [ ${map} -eq 0 ]; then
|
|
|
- exec ${M_SRV} ${M_SRV_C} ${M_SRV_C2} ${M_SRV_C3} ${M_SRV_C4} ${M_SRV_C5}&
|
|
|
- fi
|
|
|
- fi
|
|
|
- ;;
|
|
|
- *)
|
|
|
- echo "Usage: athena-start { start | stop | kill | restart }"
|
|
|
- ;;
|
|
|
esac
|