• Linux下启动SpringBoot打包的jar


    前言

    这两天把视力档案后台部署的方式改了一下,由原来打包成war包,部署到一个tomcat里面,转变成直接打包成jar包,然后使用 java -jar命令进行启动

    下面讲讲遇到的问题

    1)java -jar 运行时是前台启动,并非后台运行

    这个解决的方法是,使用nohub命令

    nohup 是 no hang up 的缩写,就是不挂断的意思

    nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。

    nohup 命令
    
    用途:不挂断地运行命令。
    
    语法:nohup Command [ Arg … ][ & ]
    
    描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 &到命令的尾部

    然后我们需要设置对应的日志输出目录

    # 设置输出目录
    nohup java -jar xxx.jar > catalina.out  2>&1 &
    # 使用tail命令打印日志
    tail -f ./catalina.out

    2)因为使用java -jar的时候,不指定java内存大小的话,会导致启动非常缓慢,所以需要设置堆栈大小

    java -jar -XX:MetaspaceSize=1024m -XX:MaxMetaspaceSize=1024m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC
    
    -XX:MetaspaceSize:最小元空间
    -XX:MaxMetaspaceSize:最大元空间
    -Xms:最小堆内存
    -Xmx:最大堆内存
    -Xmn:新生代大小
    -Xss:栈大小
    -XX:SurvivorRatio:新生代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:为3,表示Eden:Survivor=3:2,一个Survivor区占整个新生代的1/5
    -XX:+UseConcMarkSweepGC:设置并发收集器

    对于上面的,我只设置了最小堆内存和最大堆内存

    nohup java -Xms256m -Xmx512m -jar mogu_sms-0.0.1-SNAPSHOT.jar  > catalina.out  2>&1 &

    3)设置两个启动脚本,以后方便直接启动和关闭

    首先是启动脚本  startup.sh

    #!/bin/bash     
    nohup java -Xms256m -Xmx512m -jar youApplication.jar  > catalina.out  2>&1 &
    tail -f ./catalina.out

    然后是关闭脚本 shutdown.sh

    #!/bin/bash
    PID=$(ps -ef | grep youApplication.jar  | grep -v grep | awk '{ print $2 }')
    if [ -z "$PID" ]
    then
        echo Application is already stopped
    else
        echo kill $PID
        kill $PID
    fi
  • 相关阅读:
    COGS727 [网络流24题] 太空飞行计划
    Bzoj1692 洛谷P2870 [Usaco2007 Dec]队列变换
    Bzoj1029 [JSOI2007]建筑抢修
    Bzoj3168 [Heoi2013]钙铁锌硒维生素
    Bzoj4566 [Haoi2016]找相同字符
    Bzoj4771 七彩树
    Bzoj2597 [Wc2007]剪刀石头布
    Bzoj4773 负环
    HDU5772 String problem
    Bzoj1324 Exca王者之剑
  • 原文地址:https://www.cnblogs.com/joyny/p/12058127.html
Copyright © 2020-2023  润新知