Advertisement
Guest User

Untitled

a guest
Jul 12th, 2018
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.37 KB | None | 0 0
  1. #!/bin/ksh
  2. #
  3. # This is jboss service startup script.
  4. #
  5. # chkconfig: 35 80 20
  6. # description: a jboss service
  7. #
  8. # Sami Kerola <sami.kerola@tomtom.com>
  9. # Guido Bakker <guido.bakker@tomtom.com>
  10.  
  11. set -e
  12. trap "echo Failure, exit on error." ERR
  13.  
  14. # Sleep time in seconds.
  15. ITERATIONSLEEP=0.5
  16. # Treshold before kill -9
  17. ITERATIONSBEFOREKILLING=60
  18.  
  19. # Settings.
  20. JBOSS_PARTITION=`basename ${0}`
  21. if [ -f /etc/sysconfig/${JBOSS_PARTITION} ]; then
  22. . /etc/sysconfig/${JBOSS_PARTITION}
  23. else
  24. # To make /etc/rc?.d/symlinks work.
  25. JBOSS_PARTITION=`echo ${JBOSS_PARTITION} | sed 's/^[SK][0-9][0-9]//'`
  26. if [ -f /etc/sysconfig/${JBOSS_PARTITION} ]; then
  27. . /etc/sysconfig/${JBOSS_PARTITION}
  28. else
  29. echo "Environment file /etc/sysconfig/${JBOSS_PARTITION} missing. Exiting."
  30. exit 1
  31. fi
  32. fi
  33.  
  34. # Terracotta settings.
  35. if [ "x" != "x$TC_INSTALL_DIR" ]; then
  36. . $TC_INSTALL_DIR/bin/dso-env.sh
  37. export JAVA_OPTS="$TC_JAVA_OPTS $JAVA_OPTS"
  38. fi
  39.  
  40. export JAVA_OPTS
  41.  
  42. # Define where jboss is - this is the directory containing
  43. # directories log, bin, conf etc.
  44. JBOSS_HOME=${JBOSS_HOME:-"/data/jboss"}
  45. if [ ! -d "${JBOSS_HOME}" ]; then
  46. echo "JBOSS_HOME is not a directory: ${JBOSS_HOME}"
  47. exit 1
  48. fi
  49. JBOSS_SERVER_PATH="${JBOSS_HOME}/server/${JBOSS_PARTITION}"
  50.  
  51. # Add java path.
  52. JAVAPTH=${JAVAPTH:-"/usr/java/jdk/bin"}
  53.  
  54. # Define the user under which jboss.
  55. if [ "x${RUNASIS}" != "x" ]; then
  56. JBOSSUS=${USER}
  57. SUBIT="eval"
  58. else
  59. JBOSSUS=${JBOSSUS:-"jboss"}
  60. SUBIT="su ${JBOSSUS} -c "
  61. fi
  62.  
  63. # Define the classpath for the shutdown class.
  64. JBOSSCP=${JBOSSCP:-"${JBOSS_HOME}/bin/shutdown.jar:${JBOSS_HOME}/client/jnet.jar"}
  65. # Define the script to use to start jboss.
  66. JBOSSSH=${JBOSSSH:-"${JBOSS_HOME}/bin/run.sh -c ${JBOSS_PARTITION}"}
  67.  
  68. # Define start and stop commands.
  69. CMD_START="${JBOSSSH}"
  70. if [ -z "${JBOSS_USER}" -a -z "${JBOSS_PASS}" ]; then
  71. CMD_STOP="java -classpath ${JBOSSCP} org.jboss.Shutdown --shutdown -s ${JBOSS_HOST:-"0.0.0.0"}:${JBOSS_JNDI_PORT:-"1099"}"
  72. else
  73. CMD_STOP="java -classpath ${JBOSSCP} org.jboss.Shutdown --shutdown --user=${JBOSS_USER} --password=${JBOSS_PASS} -s ${JBOSS_HOST:-"0.0.0.0"}:${JBOSS_JNDI_PORT:-"1099"}"
  74. fi
  75.  
  76. # Set PATH.
  77. if [ -z "`echo ${PATH} | grep ${JAVAPTH}`" ]; then
  78. export PATH=${PATH}:${JAVAPTH}
  79. fi
  80.  
  81. # Funcionalities functions.
  82. handleConsoleLog() {
  83. if [ "x${JBOSS_CONSOLE}" != "x" ] &&
  84. [ "x${JBOSS_CONSOLE}" != "x/dev/null" ]; then
  85. if [ ! -d `dirname ${JBOSS_CONSOLE}` ]; then
  86. ${SUBIT} "mkdir `dirname ${JBOSS_CONSOLE}`"
  87. fi
  88. if [ -f ${JBOSS_CONSOLE} ]; then
  89. # Rotate old console log.
  90. ${SUBIT} "mv ${JBOSS_CONSOLE} ${JBOSS_CONSOLE}.`date +%s`"
  91. fi
  92. ${SUBIT} "touch ${JBOSS_CONSOLE}"
  93. else
  94. # Default is to ignore.
  95. echo "Warning. Java stdout messages are wrote to /dev/null"
  96. echo " This makes debugging of certain problems nearly impossible."
  97. echo " To get rid of this message set JBOSS_CONSOLE in /etc/sysconfig/${JBOSS_PARTITION}"
  98. echo " which should be a path to console log or /dev/null"
  99. JBOSS_CONSOLE="/dev/null"
  100. fi
  101. }
  102.  
  103. startFunction() {
  104. if isAlreadyRunning; then
  105. echo "The jboss partition ${JBOSS_PARTITION} is already running; pid ${JAVA_PIDS}"
  106. else
  107. echo "Starting: ${JBOSSSH}"
  108. # Make sure there is no trash in cache.
  109. rm -rf ${JBOSS_SERVER_PATH}/{data,tmp,work}/
  110. handleConsoleLog
  111. cd ${JBOSS_HOME}/bin
  112. if [ "x${SUBIT}" = "xeval" ]; then
  113. eval ${CMD_START} < /dev/null >${JBOSS_CONSOLE} 2>&1 &
  114. else
  115. ${SUBIT} "${CMD_START} < /dev/null >${JBOSS_CONSOLE} 2>&1 &"
  116. fi
  117. fi
  118. }
  119.  
  120. stopFunction() {
  121. if isAlreadyRunning; then
  122. echo "Stopping: ${JBOSSSH}"
  123. set +e
  124. if [ -z "${SUBIT}" ]; then
  125. ${CMD_STOP}
  126. else
  127. ${SUBIT} "${CMD_STOP}"
  128. fi
  129. set -e
  130. COUNT=0
  131. while isAlreadyRunning; do
  132. if [ ${COUNT} -eq 0 ]; then
  133. printf "Waiting to shutdown."
  134. fi
  135. sleep ${ITERATIONSLEEP}
  136. let COUNT=COUNT+1
  137. printf "."
  138. if [ ${COUNT} -ge ${ITERATIONSBEFOREKILLING} ]; then
  139. echo " killing with signal 9."
  140. kill -9 ${JAVA_PIDS}
  141. COUNT=0
  142. fi
  143. done
  144. printf "\n"
  145. else
  146. echo "The jboss partition ${JBOSS_PARTITION} is not running."
  147. fi
  148. }
  149.  
  150. stacktraceFunction() {
  151. if isAlreadyRunning; then
  152. echo "Making service ${JBOSS_PARTITION} to dump stacktrace to"
  153. echo "${JBOSS_CONSOLE}"
  154. kill -3 ${JAVA_PIDS}
  155. else
  156. echo "The jboss partition ${JBOSS_PARTITION} is not running."
  157. fi
  158. }
  159.  
  160. isAlreadyRunning() {
  161. JAVA_PIDS=`pgrep -u ${JBOSSUS} -f 'java.*-c[ \t]*'${JBOSS_PARTITION}'[ \t]' ||
  162. pgrep -u ${JBOSSUS} -f 'java.*-c[ \t]*'${JBOSS_PARTITION}'$' ||
  163. true`
  164. if [ "x${JAVA_PIDS}" = "x" ]; then
  165. return 1
  166. else
  167. return 0
  168. fi
  169. }
  170.  
  171. isPermitted() {
  172. if [ "x${EUID}" != "x0" ] && [ "x${RUNASIS}" != "x${USER}" ]; then
  173. echo "Run as root OR set RUNASIS variable in /etc/sysconfig/${JBOSS_PARTITION}"
  174. echo " and run logged in as user you defined."
  175. exit 1
  176. fi
  177. return 0
  178. }
  179.  
  180. # Parse command line argument.
  181. case "${1}" in
  182. start)
  183. isPermitted
  184. startFunction
  185. ;;
  186. stop)
  187. isPermitted
  188. stopFunction
  189. ;;
  190. restart)
  191. isPermitted
  192. stopFunction
  193. startFunction
  194. ;;
  195. status)
  196. if isAlreadyRunning; then
  197. echo "The jboss partition ${JBOSS_PARTITION} is already running; pid ${JAVA_PIDS}"
  198. else
  199. echo "The jboss partition ${JBOSS_PARTITION} is not running."
  200. fi
  201. ;;
  202. stacktrace)
  203. isPermitted
  204. stacktraceFunction
  205. ;;
  206. *)
  207. echo "Usage: ${0} (stop|start|restart|status|stacktrace)"
  208. exit 1
  209. ;;
  210. esac
  211.  
  212. exit 0
  213. # EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement