PIDFILE=/home/webadm/jboss/logs/jboss-server.pid
STARTJBOSS="java -Dprogram.name=/home/webadm/jboss/bin/run.sh -server -Xms128m -Xmx512m -Djava.endorsed.dirs=/home/webadm/jboss/lib/endorsed -classpath /home/webadm/jboss/bin/run.jar org.jboss.Main -c myserver -Djava.awt.headless=true"
LOGFILE=/home/webadm/jboss/logs/myserver.log
PID=0
if [ -e $PIDFILE ]; then
    PID=`cat $PIDFILE`
    if [ "x" == "x$PID" ]; then
        PID=0
    fi
fi

case "$1" in
    start)
        if [ 0 -ne $PID ]; then
            running=`ps --pid $PID | grep $PID |wc -l`
            if [ $running ]; then
                echo "Server is already running"
                exit 1
            fi

            echo "Server does not appear to be running, but old PID file exists. Removing..."
            rm $PIDFILE
            PID=0
        fi

        echo "Starting Server"

        $STARTJBOSS > $LOGFILE &
        echo $! > $PIDFILE
        while [ 1 ];
        do
                if eval "tail -1 $LOGFILE |grep '\[Server\] JBoss (MX MicroKernel) \[4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)\] Started'" ; then
                       break;
                else
                        echo -n ".";
                        sleep 1;
                fi
        done
        echo "done"
        ;;
    stop)
        if [ 0 -eq $PID ]; then
            echo "Server was not running"
            exit 1
        fi

        echo "Attempting to kill process $PID (JBoss)"
        kill $PID
        while [ 1 ];
        do
                if ps --pid $PID > null; then
                        echo -n ".";
                        sleep 1;
                else
                        break;
                fi
        done
        echo "done"
        rm $PIDFILE
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    reload)
        if [ 0 -eq $PID ]; then
            echo "Server was not running"
        fi
        kill -HUP $PID
        ;;
    *)
        echo "Usage: "`basename $0`" (start|stop|restart|reload)"
        exit 1
        ;;
esac

