Index: run.sh =================================================================== --- run.sh (revision 57509) +++ run.sh (working copy) @@ -168,16 +168,33 @@ echo "=========================================================================" echo "" -STATUS=10 -while [ $STATUS -eq 10 ] -do -# Execute the JVM +while [ 1 ]; do + # Execute the JVM. "$JAVA" $JAVA_OPTS \ -Djava.endorsed.dirs="$JBOSS_ENDORSED_DIRS" \ -classpath "$JBOSS_CLASSPATH" \ - org.jboss.Main "$@" - STATUS=$? - # if it doesn't work, you may want to take a look at this: + org.jboss.Main "$@" & + JBOSS_PID=$! + echo "JBOSS_PID: $JBOSS_PID" + # Trap common signals and relay them to the JBoss process. + trap "echo Received SIGHUP. ; kill -HUP $JBOSS_PID" HUP + trap "echo Received SIGINT. ; kill -TERM $JBOSS_PID" INT + trap "echo Received SIGQUIT.; kill -QUIT $JBOSS_PID" QUIT + trap "echo Received SIGPIPE.; kill -PIPE $JBOSS_PID" PIPE + trap "echo Received SIGTERM.; kill -TERM $JBOSS_PID" TERM + WAIT_STATUS=0 + while [ "$WAIT_STATUS" -ne 127 ]; do + JBOSS_STATUS=$WAIT_STATUS + wait $JBOSS_PID 2>/dev/null + WAIT_STATUS=$? + done + if [ $JBOSS_STATUS -eq 10 ]; then + echo Restarting JBossAS... + else + exit $JBOSS_STATUS + fi + # If restart doesn't work, see this if you're running JBossAS 4.0.4 or earlier: + # http://jira.jboss.com/jira/browse/JBAS-2483 + # or this if you're running Red Hat 7.0: # http://developer.java.sun.com/developer/bugParade/bugs/4465334.html done -