restructured repository based on following standards:
https://github.com/HW-Core/directory-structure
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
######################
|
||||
|
||||
# enable/disable GDB execution
|
||||
export GDB_ENABLED=0
|
||||
|
||||
# gdb file
|
||||
export GDB=""
|
||||
|
||||
# directory where binary are stored
|
||||
exoirt BINPATH=""
|
||||
|
||||
### Put here the pid you configured on your worldserver.conf file ###
|
||||
export SERVERPID=""
|
||||
|
||||
# path to conf file
|
||||
export CONFIG=""
|
||||
|
||||
# path of log files
|
||||
export LOGS_PATH="";
|
||||
|
||||
# exec name
|
||||
export SERVERBIN=""
|
||||
|
||||
# name of screen service ( for restarter )
|
||||
export SCREEN_NAME=""
|
||||
|
||||
######################
|
||||
|
||||
|
||||
Executable
+68
@@ -0,0 +1,68 @@
|
||||
#!/bin/bash
|
||||
|
||||
function checkStatus() {
|
||||
if [ -d "/proc/"$1 ]; then
|
||||
eval "TEST=1"
|
||||
else
|
||||
eval "TEST=0"
|
||||
fi
|
||||
}
|
||||
|
||||
function starter() {
|
||||
local CURRENT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
cd $BINPATH
|
||||
|
||||
mkdir -p "$LOGS_PATH"
|
||||
|
||||
TRACE_BEGIN_STRING="SIGSEGV"
|
||||
TRACE_FILE="$LOGS_PATH/"$SCREEN_NAME"_trace.log"
|
||||
ERR_FILE="$LOGS_PATH/"$SCREEN_NAME"_error.log"
|
||||
SYSLOG="$LOGS_PATH/"$SCREEN_NAME"_system.log"
|
||||
SYSERR="$LOGS_PATH/"$SCREEN_NAME"_system.err"
|
||||
LINKS_FILE="$LOGS_PATH/"$SCREEN_NAME"_crash_links.link"
|
||||
|
||||
$CURRENT_PATH/starter $SERVERBIN $GDB "$CONFIG" "$SYSLOG" "$SYSERR" $GDB_ENABLED
|
||||
}
|
||||
|
||||
|
||||
function restarter() {
|
||||
local CURRENT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
cd $BINPATH
|
||||
|
||||
mkdir -p "$LOGS_PATH"
|
||||
|
||||
TRACE_BEGIN_STRING="SIGSEGV"
|
||||
TRACE_FILE="$LOGS_PATH/"$SCREEN_NAME"_trace.log"
|
||||
ERR_FILE="$LOGS_PATH/"$SCREEN_NAME"_error.log"
|
||||
SYSLOG="$LOGS_PATH/"$SCREEN_NAME"_system.log"
|
||||
SYSERR="$LOGS_PATH/"$SCREEN_NAME"_system.err"
|
||||
LINKS_FILE="$LOGS_PATH/"$SCREEN_NAME"_crash_links.link"
|
||||
|
||||
if [ ! -f $TRACE_FILE ]; then
|
||||
touch $TRACE_FILE
|
||||
fi
|
||||
|
||||
while :
|
||||
do
|
||||
PID=$(cat $SERVERPID)
|
||||
checkStatus $PID
|
||||
if [ $TEST -eq 0 ]; then
|
||||
DATE=$(date)
|
||||
echo "Restarting $SCREEN_NAME Core blizz($DATE)"
|
||||
if [ $GDB_ENABLED -eq 1 ]; then
|
||||
echo "GDB enabled"
|
||||
grep -B 10 -A 1800 "$TRACE_BEGIN_STRING" "$SYSLOG" >> "$TRACE_FILE"
|
||||
cat "$SYSERR" > "$ERR_FILE"
|
||||
screen -A -m -d -S $SCREEN_NAME "$CURRENT_PATH/starter" $SERVERBIN $GDB "$CONFIG" "$SYSLOG" "$SYSERR" 1
|
||||
fi
|
||||
|
||||
if [ $GDB_ENABLED -eq 0 ]; then
|
||||
echo "GDB disabled"
|
||||
screen -A -m -d -S $SCREEN_NAME "$CURRENT_PATH/starter" $SERVERBIN null "$CONFIG" null null 0
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep 15
|
||||
done
|
||||
}
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
GDB_FILE="$2"
|
||||
CONFIG="$3"
|
||||
SYSLOG="$4"
|
||||
SYSERR="$5"
|
||||
GBD_ENABLED="$6"
|
||||
|
||||
if [ $GBD_ENABLED -eq 1 ]; then
|
||||
echo "run -c $3" > "$GDB_FILE"
|
||||
echo "bt" >> "$GDB_FILE"
|
||||
echo "bt full" >> "$GDB_FILE"
|
||||
echo "info threads" >> "$GDB_FILE"
|
||||
echo "thread apply all bt full" >> "$GDB_FILE"
|
||||
|
||||
[ ! -f "$SYSLOG" ] && touch "$SYSLOG"
|
||||
[ ! -f "$SYSERR" ] && touch "$SYSERR"
|
||||
|
||||
gdb -x $GDB_FILE --batch $1 >> "$SYSLOG" 2>> "$SYSERR"
|
||||
elif [ $GBD_ENABLED -eq 0 ]; then
|
||||
"./$1" -c "$CONFIG"
|
||||
fi
|
||||
Reference in New Issue
Block a user