springboot部署成jar包 运行脚本

脚本内容

#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=/home/application/processes/processes-0.0.1-SNAPSHOT.jar
 
#使用说明,用来提示输入参数。如:./processes.sh restart
usage() {
    echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
    exit 1
}
 
#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
  #如果不存在返回1,存在返回0     
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}
 
#启动方法
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
    #不输出日志
    #nohup java -jar $APP_NAME > /dev/null 2>&1 &
    #输出日志
    #nohup java -jar $APP_NAME >processes.log 2>&1 &
	#指定jar运行内存
	nohup java -Xms1g -Xmx1g -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m  -jar $APP_NAME >processes.log 2>&1 &
  fi
}
 
#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi  
}
 
#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}
 
#重启
restart(){
  stop
  start
}
 
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

设置脚本权限

#此处赋予最高权限:对于 文件所有者,所在组,用户 都是 可读可写可执行
chmod 777 文件名

使用方式

#启动
./processes.sh start
#停止
./processes.sh stop
#重启
./processes.sh restart
#查看状态
./processes.sh status

出现问题

执行xxx.sh脚本时,报错 "xxx.sh /bin/bash^M: 坏的解释器: 没有那个文件或目录”,
因为 xxx.sh脚本文件是从windows拷贝过来的,所以多了\r,执行如下所示命令即可:

方法一

sed -i 's/\r$//' build.sh

方法二

sudo apt-get install dos2unix
dos2unix build.sh

设置jar包运行内存

nohup java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M test.jar --spring.profiles.active=test --server.port=8000
说明
Xms:堆内存初始大小
Xmx:堆内存最大值
PermSize:永久内存初始大小
MaxPermSize:永久内存最大值
–spring.profiles.active=test 这个可以在spring-boot启动中指定系统变量,多环境(测试、预发、线上配置)的区分
补充说明
Xms:堆内存:对象使用的内存
Xmx:永久内存:类使用的内存

nohup日志信息输出

  1. 语法:nohup Command [ Arg … ] [ & ]

  2. 描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

  3. 操作系统中有三个常用的流:

     * 0:标准输入流 stdin
     * 1:标准输出流 stdout
     * 2 :标准错误流 stderr
    
     一般当我们用 > console.txt,实际是 1>console.txt的省略用法;< console.txt ,实际是 0 < console.txt的省略用法。
    

参考信息

nohup命令及其输出文件
linux下nohup日志输出过大问题解决方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值