#!/bin/sh die() { echo >&2 "$@" exit 1 } [ $# -ge 1 ] || die "Usage: $0 []" VERSION=$1 shift PARAMETERS="$@" case $VERSION in 1.4) THREADS=4 ;; *) THREADS=2 ;; esac SERVERBASE=$HOME/campaignd/$VERSION/ [ -d "$SERVERBASE" ] || die "Server '$VERSION' not found." [ -d "$SERVERBASE/data" ] || die "Server '$VERSION' has no data/ dir." [ -d "$SERVERBASE/logs" ] || mkdir $SERVERBASE/logs ulimit -c unlimited cd $SERVERBASE || exit 1 while [ true ] do DATE=$(date +"%Y%m%d-%H%M%S") COMMAND="$HOME/bin/campaignd-$VERSION $THREADS $PARAMETERS" echo "started $VERSION campaignd with command: '$COMMAND' at: $DATE" $COMMAND &> $SERVERBASE/logs/campaignd.$DATE EXIT_CODE="$?" echo "$EXIT_CODE" mv gmon.out gmon.$DATE.out &> /dev/null [ "$EXIT_CODE" != "0" ] || exit [ "$EXIT_CODE" != "1" ] || die "File I/O error." [ "$EXIT_CODE" != "2" ] || die "Could not parse config file." [ "$EXIT_CODE" != "3" ] || die "Could not bind to port." done