kanban 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #!/bin/sh
  2. #
  3. # Tomcat For UAS control script
  4. #
  5. # chkconfig: 2345 61 61
  6. # description: The Kanban Application Server
  7. #
  8. # Source function library.
  9. source /etc/profile
  10. #. /etc/rc.d/init.d/functions
  11. #export LANG="zh_CN.UTF-8"
  12. #JAVA_HOME=/usr/local/jdk1.7.0_55
  13. #export JAVA_HOME=$JAVA_HOME
  14. BASE_DIR=/home/uas/program/kanban
  15. PROFILE=test
  16. MAVEN_URI=http://maven.ubtob.com
  17. PORT[0]=8063
  18. PORT[1]=8064
  19. CONTEXT_NAME=kanban-console
  20. VERSION=0.0.1-SNAPSHOT
  21. WF=$CONTEXT_NAME-$VERSION.war
  22. run_cmd(){
  23. local curr=`whoami`
  24. local runner=uas
  25. if [ $curr == "root" ]; then
  26. runuser -l $runner -c "$1"
  27. elif [ $curr == $runner ]; then
  28. eval $1
  29. fi
  30. }
  31. start(){
  32. for port in ${PORT[@]};do
  33. startPort $port
  34. done
  35. }
  36. stop(){
  37. for port in ${PORT[@]};do
  38. stopPort $port
  39. done
  40. }
  41. restart(){
  42. for port in ${PORT[@]};do
  43. stopPort $port
  44. if [ ! -d $BASE_DIR/$port ]; then
  45. mkdir $BASE_DIR/$port
  46. fi
  47. run_cmd "cp -f $BASE_DIR/$WF $BASE_DIR/$port/$WF"
  48. startPort $port
  49. SERVICE_STATUS="curl -s -w %{http_code} localhost:$port"
  50. while [ "`$SERVICE_STATUS`" = "000" ];do
  51. echo "[Port=$port] Wait 3s for current service..."
  52. sleep 3
  53. done
  54. done
  55. }
  56. status(){
  57. PID_CMD="ps aux | grep $WF | grep -v 'grep' | awk '{print \$2}'"
  58. if [ "`eval ${PID_CMD}`" ]; then
  59. ps aux | grep $WF | grep -v 'grep'
  60. else
  61. echo "Service is not running."
  62. fi
  63. }
  64. update(){
  65. metadata_last=$BASE_DIR/maven-metadata-last.xml
  66. metadata=$BASE_DIR/maven-metadata.xml
  67. run_cmd "wget -q -O $metadata $MAVEN_URI/artifactory/libs-snapshot-local/com/uas/kanban/$CONTEXT_NAME/maven-metadata.xml"
  68. time_last="0"
  69. if [ -f $metadata_last ]; then
  70. time_last=`cat $metadata_last|grep lastUpdated|awk '{print substr($1,14,14)}'`
  71. fi
  72. time=`cat $metadata|grep lastUpdated|awk '{print substr($1,14,14)}'`
  73. if [ "$time_last" -ne "$time" ]; then
  74. rm -rf $metadata_last
  75. mv $metadata $metadata_last
  76. install
  77. fi
  78. }
  79. function install() {
  80. rm -rf $BASE_DIR/$WF.bak
  81. if [ -f $BASE_DIR/$WF ]; then
  82. mv -f $BASE_DIR/$WF $BASE_DIR/$WF.bak
  83. fi
  84. echo 'Downloading war file...'
  85. run_cmd "wget -O $BASE_DIR/$WF $MAVEN_URI/artifactory/libs-snapshot-local/com/uas/kanban/$CONTEXT_NAME/$VERSION/$WF"
  86. echo 'Download succeeded'
  87. restart
  88. }
  89. startPort(){
  90. PID_CMD_PORT="ps aux | grep $BASE_DIR/$1/$WF | grep -v 'grep' | awk '{print \$2}'"
  91. if [ ! "`eval ${PID_CMD_PORT}`" ]; then
  92. echo "[Port=$1] Starting service..."
  93. cd $BASE_DIR/$1
  94. run_cmd "nohup java -Dserver.port=$1 -Dspring.profiles.active=$PROFILE -Dserver.context-path=/kanban -server -XX:PermSize=64M -XX:MaxPermSize=128m -jar $BASE_DIR/$1/$WF 1>/dev/null 2>$BASE_DIR/$1/nohup.log &"
  95. else
  96. echo "[Port=$1] Service is already running."
  97. fi
  98. }
  99. stopPort(){
  100. PID_CMD_PORT="ps aux | grep $BASE_DIR/$1/$WF | grep -v 'grep' | awk '{print \$2}'"
  101. if [ "`eval ${PID_CMD_PORT}`" ]; then
  102. echo "[Port=$1] Stopping service..."
  103. eval ${PID_CMD_PORT} | xargs kill -9
  104. else
  105. echo "[Port=$1] Service is not running."
  106. fi
  107. }
  108. case $1 in
  109. start)
  110. start
  111. ;;
  112. stop)
  113. stop
  114. ;;
  115. restart)
  116. restart
  117. ;;
  118. status)
  119. status
  120. ;;
  121. update)
  122. update
  123. ;;
  124. install)
  125. install
  126. ;;
  127. *)
  128. echo "Usage: $0 {start|stop|restart|status|update|install}"
  129. exit 1
  130. ;;
  131. esac