
-Fix Invisibility remove by ruwach / sight / impr_concentration bugreport:7285 -Fix Dispel not removing dance, (inversed area check) -Fix Cmake compilation broken since r17189 -Upd check-doc, athena-start to ask arg if none given. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17200 54d463be-8e91-2dee-dedb-b68131a5f0ec
122 lines
2.5 KiB
Bash
Executable File
122 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
#source var/function
|
|
. ./function.sh
|
|
inst_launch_workaround
|
|
|
|
PATH=./:$PATH
|
|
print_start() {
|
|
# more << EOF
|
|
echo "Athena Starting..."
|
|
echo " (c) 2013 rAthena Project"
|
|
echo ""
|
|
echo ""
|
|
echo "checking..."
|
|
#EOF
|
|
}
|
|
|
|
get_status(){
|
|
PIDFILE=.$1.pid
|
|
if [ -e ${PIDFILE} ]; then
|
|
ISRUN=$(ps ax | grep $(cat ${PIDFILE}) | grep $1)
|
|
PSRUN=$(echo "$ISRUN" | awk '{ print substr( $0, 0, 7) }')
|
|
fi
|
|
return $PSRUN
|
|
}
|
|
|
|
#cheking if already started, launch and mark in log
|
|
start_serv(){
|
|
LOGFILE="log/$1.log"
|
|
get_status $1
|
|
echo "My logfile=${LOGFILE}"
|
|
if [ -z ${PSRUN} ]; then
|
|
exec ./$1&
|
|
echo $! > .$1.pid
|
|
echo "Server '$1' started at `date +"%m-%d-%H:%M-%S"`"
|
|
echo "Server '$1' started at `date +"%m-%d-%H:%M-%S"`" >> ${LOGFILE}
|
|
else
|
|
echo "Can't start '$1', cause is already running p${PSRUN}"
|
|
echo "Can't start '$1', cause is already running p${PSRUN}" >> ${LOGFILE}
|
|
fi
|
|
}
|
|
|
|
#experimental
|
|
watch_serv(){
|
|
LOGFILE=./log/$1.log
|
|
ulimit -Sc unlimited
|
|
|
|
while true; do
|
|
get_status $1
|
|
if [ -z ${PSRUN} ]; then
|
|
$count=$count+1
|
|
echo "server '$1' is down" >> ${LOGFILE}
|
|
echo "restarting server at time at `date +"%m-%d-%H:%M-%S"`">> ${LOGFILE}
|
|
exec ./$1&
|
|
echo $! > .$1.pid
|
|
if [ $3 ] && [ $3 -lt $count ]; then break; fi
|
|
else sleep $2
|
|
fi
|
|
done
|
|
}
|
|
|
|
restart(){
|
|
$0 stop
|
|
for i in ${L_SRV} ${C_SRV} ${M_SRV}
|
|
do
|
|
while true; do
|
|
get_status ${i}
|
|
if [ ${PSRUN} ]; then echo "'${i}' is still running p${PSRUN} waiting end"; sleep 2;
|
|
else break; fi
|
|
done
|
|
done
|
|
$0 start
|
|
}
|
|
|
|
case $1 in
|
|
'start')
|
|
print_start
|
|
check_files
|
|
echo "Check complete."
|
|
echo "Looks good, a nice Athena!"
|
|
for i in ${L_SRV} ${C_SRV} ${M_SRV}
|
|
do
|
|
start_serv $i
|
|
done
|
|
echo "Now Started Athena."
|
|
;;
|
|
'watch')
|
|
for i in ${L_SRV} ${C_SRV} ${M_SRV}
|
|
do
|
|
watch_serv $i 10 3
|
|
done
|
|
echo "Now watching Athena."
|
|
;;
|
|
'stop')
|
|
for i in ${L_SRV} ${C_SRV} ${M_SRV}
|
|
do
|
|
PIDFILE=.${i}.pid
|
|
if [ -e ./${PIDFILE} ]; then
|
|
kill $(cat ${PIDFILE})
|
|
rm ${PIDFILE}
|
|
fi
|
|
done
|
|
;;
|
|
'restart')
|
|
restart
|
|
;;
|
|
'status')
|
|
for i in ${L_SRV} ${C_SRV} ${M_SRV}
|
|
do
|
|
get_status ${i}
|
|
if [ ${PSRUN} ]; then echo "'${i}' is running p${PSRUN}"; else echo "'${i}' seem down"; fi
|
|
done
|
|
;;
|
|
*)
|
|
echo "Usage: athena-start { start | stop | restart | status | watch }"
|
|
read -p "Enter a valid option: " readEnterKey
|
|
$0 $readEnterKey
|
|
;;
|
|
esac
|
|
|
|
|