温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux下shell通用脚本启动jar

发布时间:2021-06-03 17:47:37 来源:亿速云 阅读:278 作者:Leah 栏目:开发技术

Linux下shell通用脚本启动jar?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

vim app_jar.sh

#!/bin/bash
#source /etc/profile
# Auth:Liucx
# Please change these parameters according to your real env.
# set Java Home: Remember that dolphin only supports JDK8!
JAVA_HOME=/usr/java/jdk1.8.0_162
# application directory
cd `dirname $0`
APP_HOME=`pwd`
APP_NAME="`cd ${APP_HOME} && find -name '*.jar' `"
JAR_HOME=`pwd |awk -F"/" '{print $NF}'`
# Java JVM lunch parameters
if [ x"$JAVA_MEM_OPTS" == x ];then
  JAVA_MEM_OPTS="-server -Xms512m -Xmx512m -Xmn128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
fi
# waiting timeout for starting, in seconds
START_WAIT_TIMEOUT=30
psid=0
checkpid() {
  javaps=`$JAVA_HOME/bin/jps -l | grep "$JAR_HOME"`
  if [ -n "$javaps" ]; then
   psid=`echo $javaps | awk '{print $1}'`
  else
   psid=0
  fi
}
start() {
  checkpid
  if [ $psid -ne 0 ]; then
   echo "================================"
   echo "warn: $APP_NAME already started! (pid=$psid)"
   echo "================================"
  else
   echo -n "Starting $APP_NAME ..."
   #-Dspring.profiles.active=dev 指定环境
   nohup $JAVA_HOME/bin/java -jar -Dspring.profiles.active=dev -DCONFIG_ENABLE=true $JAVA_MEM_OPTS ${APP_NAME} >${JAR_HOME}.log 2>&1 &  
   checkpid
   if [ $psid -ne 0 ]; then
     echo "(pid=$psid) [OK]"
   else
     echo "[Failed]"
   fi
  fi
}
stop() {
  sleep 2
  checkpid
  if [ $psid -ne 0 ]; then
   echo -n "Stopping $APP_NAME ...(pid=$psid) "
   #kill -9 $psid
   kill -9 $psid
   if [ $? -eq 0 ]; then
     echo "[OK]"
   else
     echo "[Failed]"
   fi
#   checkpid
#   if [ $psid -ne 0 ]; then
#     stop
#   fi
  else
   echo "================================"
   echo "warn: $APP_NAME is not running"
   echo "================================"
  fi
}
status() {
  checkpid
  if [ $psid -ne 0 ]; then
   echo "$APP_NAME is running! (pid=$psid)"
  else
   echo "$APP_NAME is not running"
  fi
}
info() {
  echo "System Information:"
  echo "****************************"
  echo `head -n 1 /etc/issue`
  echo `uname -a`
  echo
  echo "JAVA_HOME=$JAVA_HOME"
  echo `$JAVA_HOME/bin/java -version`
  echo
  echo "APP_HOME=$APP_HOME"
  echo "APP_NAME=$APP_NAME"
  echo "****************************"
}
case "$1" in
  'start')
   start
   ;;
  'stop')
   stop
   ;;
  'restart')
   stop
   echo "You restart the application ..."
   start #
   ;;
  'status')
   status
   ;;
  'info')
   info
   ;;
 *)
   echo "Usage: $0 {start|stop|restart|status|info}"
   exit 1
esac

使用方式:

app_jar.sh start
app_jar.sh stop
app_jar.sh restart

关于Linux下shell通用脚本启动jar问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI