springboot 打成jar包的启动和关闭脚本

start.sh:

#!/bin/bashSERVER_NAME=‘stu‘# jar名称JAR_NAME=‘stu-0.0.1-SNAPSHOT.jar‘cd `dirname $0`BIN_DIR=`pwd`cd ..DEPLOY_DIR=`pwd`echo $DEPLOY_DIRCONF_DIR=$DEPLOY_DIR/conf SERVER_PORT=`sed ‘/server.port/!d;s/.*=//‘ conf/application.properties | tr -d ‘\r‘`# 获取应用的端口号echo $SERVER_PORT

PIDS=`ps -f | grep java | grep "$CONF_DIR" |awk ‘{print $2}‘`if [ "$1" = "status" ]; then    if [ -n "$PIDS" ]; then        echo "The $SERVER_NAME is running...!"        echo "PID: $PIDS"        exit 0    else        echo "The $SERVER_NAME is stopped"        exit 0    fifi

if [ -n "$PIDS" ]; then    echo "ERROR: The $SERVER_NAME already started!"    echo "PID: $PIDS"    exit 1fi

if [ -n "$SERVER_PORT" ]; then    SERVER_PORT_COUNT=`netstat -tln | grep $SERVER_PORT | wc -l`    if [ $SERVER_PORT_COUNT -gt 0 ]; then        echo "ERROR: The $SERVER_NAME port $SERVER_PORT already used!"        exit 1    fifi

LOGS_DIR=$DEPLOY_DIR/logsif [ ! -d $LOGS_DIR ]; then    mkdir $LOGS_DIRfiSTDOUT_FILE=$LOGS_DIR/stdout.log

JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "JAVA_DEBUG_OPTS=""if [ "$1" = "debug" ]; then    JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "fi

JAVA_JMX_OPTS=""if [ "$1" = "jmx" ]; then    JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "fi

JAVA_MEM_OPTS=""BITS=`java -version 2>&1 | grep -i 64-bit`if [ -n "$BITS" ]; then    JAVA_MEM_OPTS=" -server -Xmx512m -Xms512m -Xmn256m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "else    JAVA_MEM_OPTS=" -server -Xms512m -Xmx512m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "fiecho $SERVER_PORT

CONFIG_FILES=" -Dlogging.path=$LOGS_DIR -Dlogging.config=$CONF_DIR/log4j2.xml -Dspring.config.location=$CONF_DIR/application.properties "echo -e "Starting the $SERVER_NAME ..."echo $JAVA_OPTSecho  $JAVA_MEM_OPTSecho $JAVA_DEBUG_OPTSecho  $JAVA_JMX_OPTSecho $DEPLOY_DIR/lib/$JAR_NAMEecho $STDOUT_FILEecho ${CONF_DIR}LIB_DIR=$DEPLOY_DIR/libLIB_JARS=`ls $LIB_DIR|grep .jar|awk ‘{print "‘$LIB_DIR‘/"$0}‘|tr "\n" ":"`nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -classpath $CONF_DIR:$LIB_JARS  cn.sw.stu.StuApplication --Dspring.config.location=$CONF_DIR > $STDOUT_FILE 2>&1 &COUNT=0while [ $COUNT -lt 1 ]; do    echo -e ".\c"    sleep 1    if [ -n "$SERVER_PORT" ]; thenecho $COUNT        COUNT=`netstat -an | grep $SERVER_PORT | wc -l`        COUNT=`ps -f | grep java | grep "$DEPLOY_DIR" | awk ‘{print $2}‘ | wc -l`    fi    if [ $COUNT -gt 0 ]; then        break    fidone

echo "OK!"PIDS=`ps -f | grep java | grep "$DEPLOY_DIR" | awk ‘{print $2}‘`echo "PID: $PIDS"echo "STDOUT: $STDOUT_FILE"echo "success"

stop.sh:
#!/bin/bashcd ..APP_NAME=`pwd`echo $APP_NAMEtpid=`ps -f | grep java | grep $APP_NAME | awk ‘{print $2}‘`echo "$tpid"if [ ${tpid} ] ;thenkill -9 $tpidecho "kill" ${APP_NAME} "success"elseecho ${APP_NAME} "stopped"fi

原文地址:https://www.cnblogs.com/sw-123/p/10970077.html

时间: 2024-11-10 01:12:04

springboot 打成jar包的启动和关闭脚本的相关文章

springboot打成jar包涉及到的linux命令

首先要明确 springboot项目打成jar包 查的是java进程不是tomcat进程 直接可以 ps -ef|grep java 就可以查出来 也可以用jbs -l 查询后台进程 还有启动jar包的命令 nohup java -jar  xxx. jar& 这是让程序在后台运行 如果只用 java -jar  xxx. jar 你关闭了xshell或者ctrl c一下就会把服务停止 所以用 nohup java -jar  xxx. jar& 原文地址:https://www.cnbl

java项目打成jar包并部署到Linux服务器,以及在shell脚本中启动java程序

一.在eclipse中,将java程序打成可运行的jar包 1.只需要把src目录和lib目录下的第三方jar打包即可 2.选中这两个位置后,一路"next",然后"finish",生成jar包 3.生成项目结构的zip包 然后,把项目打成zip包,注意只选需要的程序目录结构和配置文件夹即可 4.点击"finish",完成zip包的压缩 5.把生成的jar包和zip包上传到linux服务器的程序安装目录(根据项目组不同,程序安装目录会不同,但是一

spring cloud 打成jar包在Windows或者Linux上运行的

整理一下关于Spring Boot后台运行的一些配置方式.在介绍后台运行配置之前,我们先回顾一下Spring Boot应用的几种运行方式 1:运行Spring Boot的应用主类2:使用Maven的Spring Boot插件mvn spring-boot:run来运行3:打成jar包后,使用java -jar运行 我们在开发的时候,通常会使用前两种,而在部署的时候往往会使用第三种.但是,我们在使用java -jar来运行的时候,并非后台运行.下面我们分别针对Windows和Linux/Unix两

IDEA打成jar包并在windows后台运行

IDEA打成jar包并在windows后台运行 一.IDEA打成jar包 1.File=>Project Structure=>Project 选择windows中安装的java版本,idea默认使用自己的java环境,需要改为windows中安装的版本,不然后期jar包在windows中运行时会java版本不对的错误. 2.File=>Project Structure=>Artifacts 接着选择main方法 选择完之后出现以下界面,点击"OK" 3.返回

Intellij IDEA将java源码打成jar包

得到一份java源码,要打成jar包,怎么做? 1.打开File-->ProjectStructure-->Artifacts 2.点击"+",选择"Jar",选择Empty或From modules with dependencies,后者会把在项目中用到的Jar包解压开,当成项目的一部分,打包到最后的Jar包中.但是这样会有一个问题,即,如果项目中引用的Jar包有签名过,最后打包成的Jar包运行时会抛出错误:"java.lang.Secur

把自己的程序打成jar包,让别人调用

 我们写程序的时候往往需要把自己的程序打包成jar包,给第三方调用.Eclipse让我们非常方便的可以导出jar包.但是当程序里需要用到res里的资源时,往往就会出现问题.因为统自动生成的R类如果被打到jar包中后,就失去了索引资源的作用.导致封装成jar包的view无法获取对应资源.因为R类的属性值是在应用编译打包时由系统自动分配的.R类打包之后失效,实际是因为R类的内部类里面的属性失效,因为打包之后这些属性的值就固定了,但是实际项目中这些值是在编译时有系统自动分配的,无法在编译前固定. 本文

打成Jar包后运行报错 Unable to locate Spring NamespaceHandler for XML schema namespace

MAVEN项目,在IDEA中运行正常,但是把它打成jar包后再运行就会出现异常: Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.sp

使用myeclipse将Java项目打成jar包遇到classnotfound的问题解决办法

今天做一个东西,把Java项目打包成jar文件.折腾了俩小时,到最后还是执行jar文件就报classnotfound异常,我感觉是所写的程序中依赖的jar包没有打进去,但我手动加了,还是不行.网上找了好多办法,还是不行.后来,问了一技术大牛的朋友,才知道问题出在哪了. 选择runnable jar file,而不是jar file(我的myeclipse版本是6.5,没有这个runnable jar file选项) next 选择"package required libraries into

myeclipse maven 打成jar包 对要执行的main方法暴露出去,通过java -jar 命令后跟打包好的jar文件回车就可以执行暴露的main线程方法

在该maven项目的pom.xml中添加: <plugin>          <artifactId>maven-assembly-plugin</artifactId>          <configuration>              <archive>                  <manifest>                      <mainClass>com.xha.db.service