run-docker.sh 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. #!/bin/sh
  2. cd /micro
  3. #PROJECT_PREFIX=${PROJECT_PREFIX:-oss3}
  4. #sed -i 's/AIOPS_COLLECTOR_URL/'"$AIOPS_COLLECTOR_URL"'/' /root/APM/aiopsagent.config
  5. CURRENT=`date "+%Y-%m-%d %H:%M:%S"`
  6. TIMESTAMP=`date -d "$CURRENT" +%s`
  7. CONTAINER_IP=`hostname -i|sed "s/\./ /g"|xargs printf "%03d%03d%03d%03d"`_$TIMESTAMP
  8. CONSOLE_LOG_ENABLE=${CONSOLE_LOG_ENABLE:-false}
  9. DAILY_LOG_ENABLE=${DAILY_LOG_ENABLE:-true}
  10. S_ACTIVE=${S_ACTIVE:-dev}
  11. JAVA_OPS=${JAVA_OPS:-'-Xms512M -Xmx512M'}
  12. CROND=${CROND:-false}
  13. CRONTAB="${CRONTAB:-false}"
  14. CURR_PATH=$(pwd)
  15. SERVICE_NAME=""
  16. JAR_NAME=$(find ./ -maxdepth 1 -name \*1.0.0-SNAPSHOT-exec.jar -type f -exec basename {} \;)
  17. if [ -z $JAR_NAME ];then
  18. JAR_NAME=$(find ./ -maxdepth 1 -name \*1.0.0-SNAPSHOT.jar -type f -exec basename {} \;)
  19. SERVICE_NAME=${JAR_NAME%%-1.0.0-SNAPSHOT.jar}
  20. else
  21. SERVICE_NAME=${JAR_NAME%%-1.0.0-SNAPSHOT-exec.jar}
  22. fi
  23. if [ $CROND == true ];then
  24. crond
  25. fi
  26. if [ "$CRONTAB" != false ];then
  27. echo "${CRONTAB} bash /micro/ftp_log.sh" >>/var/spool/cron/crontabs/root
  28. else
  29. sed -i '/ftp_log/d' /var/spool/cron/crontabs/root
  30. fi
  31. TMP_DIR=${CURR_PATH}"/tmp"
  32. mkdir -p $TMP_DIR
  33. #JAVA_OPS="-javaagent:/root/APM/pinpoint-bootstrap.jar -Dpinpoint.agentId=$CONTAINER_IP -Dpinpoint.applicationName=$PROJECT_PREFIX-$SERVICE_NAME-$S_ACTIVE "${JAVA_OPS}
  34. #JAVA_OPS="-javaagent:/root/APM/aiopsagent-1.8.0.jar -Dpinpoint.agentId=$CONTAINER_IP -Dpinpoint.licence=$AIOPS_LICENCE -Dpinpoint.applicationName=$AIOPS_APP_NAME "${JAVA_OPS}
  35. JAVA_OPS="-Ddaily.log.enable=$DAILY_LOG_ENABLE -Dconsole.log.enable=$CONSOLE_LOG_ENABLE -Dspring.profiles.active=$S_ACTIVE -Dtmp.dir=${TMP_DIR} "${JAVA_OPS}
  36. if [ -n "$API_VERSION" ];then
  37. JAVA_OPS="-Dspring.cloud.nacos.discovery.metadata.apiVersion=${API_VERSION} "${JAVA_OPS}
  38. fi
  39. JAR_LIB=${CURR_PATH}"/lib"
  40. if [ -d $JAR_LIB ];then
  41. JAVA_OPS=${JAVA_OPS}" -Dloader.path=file://${JAR_LIB} "
  42. fi
  43. PATH_TO_JAR="$CURR_PATH/$JAR_NAME"
  44. PID_PATH_NAME="$CURR_PATH/$SERVICE_NAME-pid"
  45. if [ -f $PID_PATH_NAME ]; then
  46. if test -z $(cat $PID_PATH_NAME) ;then
  47. rm $PID_PATH_NAME
  48. fi
  49. fi
  50. start()
  51. {
  52. echo "Starting $SERVICE_NAME ..."
  53. if [ ! -f $PID_PATH_NAME ]; then
  54. if [ $1 -eq 0 ]; then
  55. java $JAVA_OPS -jar $PATH_TO_JAR
  56. echo "$SERVICE_NAME stoped ..."
  57. else
  58. nohup java $JAVA_OPS -jar $PATH_TO_JAR >/dev/null 2>&1 &
  59. echo $! > $PID_PATH_NAME
  60. echo "$SERVICE_NAME started ..."
  61. fi
  62. else
  63. PID=$(cat $PID_PATH_NAME);
  64. PID_EXISTS=$(ps -p $PID);
  65. if [ $? -eq 0 ]; then
  66. echo "$SERVICE_NAME is already running ..."
  67. else
  68. if [ $1 -eq 0 ]; then
  69. java $JAVA_OPS -jar $PATH_TO_JAR
  70. echo "$SERVICE_NAME stoped ..."
  71. else
  72. nohup java $JAVA_OPS -jar $PATH_TO_JAR >/dev/null 2>&1 &
  73. echo $! > $PID_PATH_NAME
  74. echo "$SERVICE_NAME started ..."
  75. fi
  76. fi
  77. fi
  78. }
  79. stop()
  80. {
  81. if [ -f $PID_PATH_NAME ]; then
  82. PID=$(cat $PID_PATH_NAME);
  83. echo "$SERVICE_NAME stoping ..."
  84. i=0
  85. kill $PID
  86. PID_EXISTS=$(ps -p $PID);
  87. while ( [ $? -eq 0 ] && [ "$i" -lt 15 ] )
  88. do
  89. sleep 1;
  90. let "i += 1";
  91. echo "$i sec"
  92. PID_EXISTS=$(ps -p $PID);
  93. done
  94. PID_EXISTS=$(ps -p $PID);
  95. if [ $? -eq 0 ]; then
  96. CPID=$(ps -ef|grep java|grep $PATH_TO_JAR|grep -v grep|awk '{print $2}')
  97. kill -9 $CPID;
  98. echo "$SERVICE_NAME stop failure so kill process ..."
  99. fi
  100. echo "$SERVICE_NAME stopped ..."
  101. rm $PID_PATH_NAME
  102. else
  103. echo "$SERVICE_NAME is not running ..."
  104. fi
  105. }
  106. case $1 in
  107. start)
  108. start 1
  109. ;;
  110. console)
  111. start 0
  112. ;;
  113. stop)
  114. stop
  115. ;;
  116. restart)
  117. stop
  118. start 1
  119. ;;
  120. *)
  121. echo "Usage: $0 {start|console|stop|restart}"
  122. exit 1
  123. ;;
  124. esac
  125. exit 0