standalone.sh 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. #!/bin/sh
  2. # Use --debug to activate debug mode with an optional argument to specify the port.
  3. # Usage : standalone.bat --debug
  4. # standalone.bat --debug 9797
  5. if [ -f /opt/jboss/start.log ] ; then
  6. echo ###### start.log #########
  7. cat /opt/jboss/start.log
  8. echo ##########################
  9. echo .
  10. echo .
  11. fi
  12. if [ ! -z "$JBOSS_WAIT" ] ; then
  13. sleep $JBOSS_WAIT
  14. fi
  15. gotmpl /opt/jboss/jboss-as-7.2.0.Final/standalone/configuration/standalone.xml.template /opt/jboss/jboss-as-7.2.0.Final/standalone/configuration/standalone.xml
  16. if [ ! $? -eq 0 ] ; then
  17. echo FAILED
  18. exit 1
  19. fi
  20. if [ ! -z "$DEV_MODE" ] ; then
  21. echo ###### standalone.xml ######
  22. cat /opt/jboss/jboss-as-7.2.0.Final/standalone/configuration/standalone.xml
  23. echo ############################
  24. echo .
  25. echo .
  26. fi
  27. # By default debug mode is disable.
  28. DEBUG_MODE=false
  29. DEBUG_PORT="8787"
  30. SERVER_OPTS=""
  31. while [ "$#" -gt 0 ]
  32. do
  33. case "$1" in
  34. --debug)
  35. DEBUG_MODE=true
  36. shift
  37. if [ -n "$1" ] && [ "${1#*-}" = "$1" ]; then
  38. DEBUG_PORT=$1
  39. else
  40. SERVER_OPTS="$SERVER_OPTS $1"
  41. fi
  42. ;;
  43. --)
  44. shift
  45. break;;
  46. *)
  47. SERVER_OPTS="$SERVER_OPTS \"$1\""
  48. ;;
  49. esac
  50. shift
  51. done
  52. DIRNAME=`dirname "$0"`
  53. PROGNAME=`basename "$0"`
  54. GREP="grep"
  55. # Use the maximum available, or set MAX_FD != -1 to use that
  56. MAX_FD="maximum"
  57. # OS specific support (must be 'true' or 'false').
  58. cygwin=false;
  59. darwin=false;
  60. linux=false;
  61. case "`uname`" in
  62. CYGWIN*)
  63. cygwin=true
  64. ;;
  65. Darwin*)
  66. darwin=true
  67. ;;
  68. Linux)
  69. linux=true
  70. ;;
  71. esac
  72. # For Cygwin, ensure paths are in UNIX format before anything is touched
  73. if $cygwin ; then
  74. [ -n "$JBOSS_HOME" ] &&
  75. JBOSS_HOME=`cygpath --unix "$JBOSS_HOME"`
  76. [ -n "$JAVA_HOME" ] &&
  77. JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  78. [ -n "$JAVAC_JAR" ] &&
  79. JAVAC_JAR=`cygpath --unix "$JAVAC_JAR"`
  80. fi
  81. # Setup JBOSS_HOME
  82. RESOLVED_JBOSS_HOME=`cd "$DIRNAME/.."; pwd`
  83. if [ "x$JBOSS_HOME" = "x" ]; then
  84. # get the full path (without any relative bits)
  85. JBOSS_HOME=$RESOLVED_JBOSS_HOME
  86. else
  87. SANITIZED_JBOSS_HOME=`cd "$JBOSS_HOME"; pwd`
  88. if [ "$RESOLVED_JBOSS_HOME" != "$SANITIZED_JBOSS_HOME" ]; then
  89. echo ""
  90. echo " WARNING: JBOSS_HOME may be pointing to a different installation - unpredictable results may occur."
  91. echo ""
  92. echo " JBOSS_HOME: $JBOSS_HOME"
  93. echo ""
  94. sleep 2s
  95. fi
  96. fi
  97. export JBOSS_HOME
  98. # Read an optional running configuration file
  99. if [ "x$RUN_CONF" = "x" ]; then
  100. RUN_CONF="$DIRNAME/standalone.conf"
  101. fi
  102. if [ -r "$RUN_CONF" ]; then
  103. . "$RUN_CONF"
  104. fi
  105. # Set debug settings if not already set
  106. if [ "$DEBUG_MODE" = "true" ]; then
  107. DEBUG_OPT=`echo $JAVA_OPTS | $GREP "\-agentlib:jdwp"`
  108. if [ "x$DEBUG_OPT" = "x" ]; then
  109. JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=$DEBUG_PORT,server=y,suspend=n"
  110. else
  111. echo "Debug already enabled in JAVA_OPTS, ignoring --debug argument"
  112. fi
  113. fi
  114. # Setup the JVM
  115. if [ "x$JAVA" = "x" ]; then
  116. if [ "x$JAVA_HOME" != "x" ]; then
  117. JAVA="$JAVA_HOME/bin/java"
  118. else
  119. JAVA="java"
  120. fi
  121. fi
  122. if [ "$PRESERVE_JAVA_OPTS" != "true" ]; then
  123. # Check for -d32/-d64 in JAVA_OPTS
  124. JVM_D64_OPTION=`echo $JAVA_OPTS | $GREP "\-d64"`
  125. JVM_D32_OPTION=`echo $JAVA_OPTS | $GREP "\-d32"`
  126. # Check If server or client is specified
  127. SERVER_SET=`echo $JAVA_OPTS | $GREP "\-server"`
  128. CLIENT_SET=`echo $JAVA_OPTS | $GREP "\-client"`
  129. if [ "x$JVM_D32_OPTION" != "x" ]; then
  130. JVM_OPTVERSION="-d32"
  131. elif [ "x$JVM_D64_OPTION" != "x" ]; then
  132. JVM_OPTVERSION="-d64"
  133. elif $darwin && [ "x$SERVER_SET" = "x" ]; then
  134. # Use 32-bit on Mac, unless server has been specified or the user opts are incompatible
  135. "$JAVA" -d32 $JAVA_OPTS -version > /dev/null 2>&1 && PREPEND_JAVA_OPTS="-d32" && JVM_OPTVERSION="-d32"
  136. fi
  137. CLIENT_VM=false
  138. if [ "x$CLIENT_SET" != "x" ]; then
  139. CLIENT_VM=true
  140. elif [ "x$SERVER_SET" = "x" ]; then
  141. if $darwin && [ "$JVM_OPTVERSION" = "-d32" ]; then
  142. # Prefer client for Macs, since they are primarily used for development
  143. CLIENT_VM=true
  144. PREPEND_JAVA_OPTS="$PREPEND_JAVA_OPTS -client"
  145. else
  146. PREPEND_JAVA_OPTS="$PREPEND_JAVA_OPTS -server"
  147. fi
  148. fi
  149. if [ $CLIENT_VM = false ]; then
  150. NO_COMPRESSED_OOPS=`echo $JAVA_OPTS | $GREP "\-XX:\-UseCompressedOops"`
  151. if [ "x$NO_COMPRESSED_OOPS" = "x" ]; then
  152. "$JAVA" $JVM_OPTVERSION -server -XX:+UseCompressedOops -version >/dev/null 2>&1 && PREPEND_JAVA_OPTS="$PREPEND_JAVA_OPTS -XX:+UseCompressedOops"
  153. fi
  154. fi
  155. JAVA_OPTS="$PREPEND_JAVA_OPTS $JAVA_OPTS"
  156. fi
  157. if [ "x$JBOSS_MODULEPATH" = "x" ]; then
  158. JBOSS_MODULEPATH="$JBOSS_HOME/modules"
  159. fi
  160. if $linux; then
  161. # consolidate the server and command line opts
  162. CONSOLIDATED_OPTS="$JAVA_OPTS $SERVER_OPTS"
  163. # process the standalone options
  164. for var in $CONSOLIDATED_OPTS
  165. do
  166. case $var in
  167. -Djboss.server.base.dir=*)
  168. JBOSS_BASE_DIR=`readlink -m ${var#*=}`
  169. ;;
  170. -Djboss.server.log.dir=*)
  171. JBOSS_LOG_DIR=`readlink -m ${var#*=}`
  172. ;;
  173. -Djboss.server.config.dir=*)
  174. JBOSS_CONFIG_DIR=`readlink -m ${var#*=}`
  175. ;;
  176. esac
  177. done
  178. fi
  179. # determine the default base dir, if not set
  180. if [ "x$JBOSS_BASE_DIR" = "x" ]; then
  181. JBOSS_BASE_DIR="$JBOSS_HOME/standalone"
  182. fi
  183. # determine the default log dir, if not set
  184. if [ "x$JBOSS_LOG_DIR" = "x" ]; then
  185. JBOSS_LOG_DIR="$JBOSS_BASE_DIR/log"
  186. fi
  187. # determine the default configuration dir, if not set
  188. if [ "x$JBOSS_CONFIG_DIR" = "x" ]; then
  189. JBOSS_CONFIG_DIR="$JBOSS_BASE_DIR/configuration"
  190. fi
  191. # For Cygwin, switch paths to Windows format before running java
  192. if $cygwin; then
  193. JBOSS_HOME=`cygpath --path --windows "$JBOSS_HOME"`
  194. JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
  195. JBOSS_MODULEPATH=`cygpath --path --windows "$JBOSS_MODULEPATH"`
  196. JBOSS_BASE_DIR=`cygpath --path --windows "$JBOSS_BASE_DIR"`
  197. JBOSS_LOG_DIR=`cygpath --path --windows "$JBOSS_LOG_DIR"`
  198. JBOSS_CONFIG_DIR=`cygpath --path --windows "$JBOSS_CONFIG_DIR"`
  199. fi
  200. # Display our environment
  201. echo "========================================================================="
  202. echo ""
  203. echo " JBoss Bootstrap Environment"
  204. echo ""
  205. echo " JBOSS_HOME: $JBOSS_HOME"
  206. echo ""
  207. echo " JAVA: $JAVA"
  208. echo ""
  209. echo " JAVA_OPTS: $JAVA_OPTS"
  210. echo ""
  211. echo "========================================================================="
  212. echo ""
  213. while true; do
  214. if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then
  215. # Execute the JVM in the foreground
  216. eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
  217. \"-Dorg.jboss.boot.log.file=$JBOSS_LOG_DIR/server.log\" \
  218. \"-Dlogging.configuration=file:$JBOSS_CONFIG_DIR/logging.properties\" \
  219. -jar \"$JBOSS_HOME/jboss-modules.jar\" \
  220. -mp \"${JBOSS_MODULEPATH}\" \
  221. -jaxpmodule "javax.xml.jaxp-provider" \
  222. org.jboss.as.standalone \
  223. -Djboss.home.dir=\"$JBOSS_HOME\" \
  224. -Djboss.server.base.dir=\"$JBOSS_BASE_DIR\" \
  225. "$SERVER_OPTS"
  226. JBOSS_STATUS=$?
  227. else
  228. # Execute the JVM in the background
  229. eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
  230. \"-Dorg.jboss.boot.log.file=$JBOSS_LOG_DIR/server.log\" \
  231. \"-Dlogging.configuration=file:$JBOSS_CONFIG_DIR/logging.properties\" \
  232. -jar \"$JBOSS_HOME/jboss-modules.jar\" \
  233. -mp \"${JBOSS_MODULEPATH}\" \
  234. -jaxpmodule "javax.xml.jaxp-provider" \
  235. org.jboss.as.standalone \
  236. -Djboss.home.dir=\"$JBOSS_HOME\" \
  237. -Djboss.server.base.dir=\"$JBOSS_BASE_DIR\" \
  238. "$SERVER_OPTS" "&"
  239. JBOSS_PID=$!
  240. # Trap common signals and relay them to the jboss process
  241. trap "kill -HUP $JBOSS_PID" HUP
  242. trap "kill -TERM $JBOSS_PID" INT
  243. trap "kill -QUIT $JBOSS_PID" QUIT
  244. trap "kill -PIPE $JBOSS_PID" PIPE
  245. trap "kill -TERM $JBOSS_PID" TERM
  246. if [ "x$JBOSS_PIDFILE" != "x" ]; then
  247. echo $JBOSS_PID > $JBOSS_PIDFILE
  248. fi
  249. # Wait until the background process exits
  250. WAIT_STATUS=128
  251. while [ "$WAIT_STATUS" -ge 128 ]; do
  252. wait $JBOSS_PID 2>/dev/null
  253. WAIT_STATUS=$?
  254. if [ "$WAIT_STATUS" -gt 128 ]; then
  255. SIGNAL=`expr $WAIT_STATUS - 128`
  256. SIGNAL_NAME=`kill -l $SIGNAL`
  257. echo "*** JBossAS process ($JBOSS_PID) received $SIGNAL_NAME signal ***" >&2
  258. fi
  259. done
  260. if [ "$WAIT_STATUS" -lt 127 ]; then
  261. JBOSS_STATUS=$WAIT_STATUS
  262. else
  263. JBOSS_STATUS=0
  264. fi
  265. if [ "$JBOSS_STATUS" -ne 10 ]; then
  266. # Wait for a complete shudown
  267. wait $JBOSS_PID 2>/dev/null
  268. fi
  269. if [ "x$JBOSS_PIDFILE" != "x" ]; then
  270. grep "$JBOSS_PID" $JBOSS_PIDFILE && rm $JBOSS_PIDFILE
  271. fi
  272. fi
  273. if [ "$JBOSS_STATUS" -eq 10 ]; then
  274. echo "Restarting JBoss..."
  275. else
  276. exit $JBOSS_STATUS
  277. fi
  278. done