#!/bin/bash ###################### GDB_ENABLED=1 GDB="trinity.gdb" COREPID="core.pid" REALMPID="realm.pid" CORE_CONFIG="../etc/worldserver.conf" REALM_CONFIG="../etc/authserver.conf" CORE_SCREEN_NAME="core" REALM_SCREEN_NAME="realm" SERVERIP="178.33.34.151" TRACE_BEGIN_STRING="SIGSEGV" ERR_FILE="/var/www/error.log" SYSLOG="/var/www/system.log" SYSERR="/var/www/system.err" LINKS_FILE="/var/www/crash_link.html" ###################### function checkStatus() { if [ -d "/proc/"$1 ]; then eval "TEST=1" else eval "TEST=0" fi } while : do PID=$(cat $COREPID) checkStatus $PID if [ $TEST -eq 0 ]; then DATE=$(date) TRACE_FILE="/var/www/`date`_trace.log" echo "Restarting Trinity Core ($DATE)" if [ $GDB_ENABLED -eq 1 ]; then cat "$SYSLOG" > "$TRACE_FILE" cat "$SYSERR" > "$ERR_FILE" echo 'http://$SERVERIP/$TRACE_FILE' >> "LINKS_FILE" screen -A -m -d -S $CORE_SCREEN_NAME ./start core $GDB "$CORE_CONFIG" "$SYSLOG" "$SYSERR" 1 fi if [ $GDB_ENABLED -eq 0 ]; then screen -A -m -d -S $CORE_SCREEN_NAME ./start core null "$CORE_CONFIG" null null 0 fi fi PID=$(cat "$REALMPID") checkStatus $PID if [ $TEST -eq 0 ]; then DATE=$(date) echo "Restarting Trinity Realm ($DATE)" screen -A -m -d -S $REALM_SCREEN_NAME ./start realm null "$REALM_CONFIG" fi sleep 45 done