Improved run engine and moved on separated module

+ Also added some example script to create your own
restart script
This commit is contained in:
Yehonal
2016-09-01 13:21:02 +02:00
parent 3704829d65
commit 9466e0c21c
9 changed files with 202 additions and 72 deletions

View File

@@ -10,7 +10,7 @@ fi
function ac_on_after_build() {
# move the run engine
cp -rvf "$AC_PATH_BIN/runners/"* "$INSTALL_PATH/bin/"
cp -rvf "$AC_PATH_MODULES/acore/startup-scripts/"* "$INSTALL_PATH/bin/"
}
registerHooks "ON_AFTER_BUILD" ac_on_after_build

View File

@@ -1,70 +0,0 @@
#!/bin/bash
function checkStatus() {
# wipe do : destroy old screens + ls
screen -wipe
if screen -ls $1 | grep -q "No Sockets found"
then
return 0
else
return 1
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
if checkStatus $SCREEN_NAME; then
DATE=$(date)
echo "Restarting $SCREEN_NAME Core blizz($DATE)"
echo $PID
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
}

View File

@@ -1,21 +0,0 @@
#!/usr/bin/env bash
GDB_FILE="$2"
CONFIG="$3"
SYSLOG="$4"
SYSERR="$5"
GBD_ENABLED="$6"
if [ $GBD_ENABLED -eq 1 ]; then
echo "set logging on" > "$GDB_FILE"
echo "set debug timestamp" >> "$GDB_FILE"
echo "run -c $3" >> "$GDB_FILE"
echo "bt" >> "$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