#!/usr/bin/env bash ################################################################################# # JAVA 应用运行脚本 # @author: Zhang Peng ################################################################################# # 检查脚本参数,如必要参数未传入,退出脚本。 function checkInput() { if [ "${profile}" == "" ] || [ "${oper}" == "" ]; then echo "请输入脚本参数:profile oper [debug]" echo " profile: 运行环境(必填)。可选值:development|test" echo " oper: 运行环境(必填)。可选值:start|stop|restart" echo " debug: debug启动开关。默认不填为不启动。" exit 0 fi } #检查文件是否存在,不存在则退出脚本 function checkFileExist() { if [ ! -f "$1" ] then echo "关键文件 $1 找不到,脚本执行结束" exit 0 fi } # 封装启动参数,调用启动脚本 function main() { APP_NAME=ck-lion # JVM 参数 JAVA_OPTS=" -Djava.awt.headless=true -Dfile.encoding=UTF8 -Djava.net.preferIPv4Stack=true -Ddubbo.shutdown.hook=true -Dspring.profiles.active=${profile} -Djava.security.egd=file:/dev/./urandom -Xms1024m -Xmx1024m -Xss2m " JAVA_DEBUG_OPTS="" if [ "$2" == "debug" ]; then JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=2236,server=y,suspend=n " shift fi javaArgs=" ${JAVA_OPTS} ${JAVA_DEBUG_OPTS} " # classpath 参数 classpathArgs="${SERVER_ROOT}/WEB-INF/classes:${SERVER_ROOT}/WEB-INF/lib/*" # 启动类 bootstrapClass="com.alibaba.dubbo.container.Main" ${SCRIPT_DIR}/java-app-boot.sh ${APP_NAME} ${oper} "${javaArgs}" "${classpathArgs}" "${bootstrapClass}" execode=$? if [ "${execode}" == "0" ]; then echo "执行操作成功" else echo "执行操作失败" exit 1 fi } ######################################## MAIN ######################################## # 设置环境变量 export LANG="zh_CN.UTF-8" # 设置全局常量 SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd) SOURCE_DIR=/home/zp/source/ APP_NAME=XXX SERVER_ROOT=/home/zp/source/${APP_NAME}/target/ # 0. 获取传入参数并检查 profile=$1 oper=$2 debug=$3 checkInput # 1. 执行操作 main