linux下springboot项目jar包部署

一、springboot中jar包启动停止脚本

脚本备注说明: java -jar app.jar 运行jar包

java -jar -Dspring.config.location="" app.jar 指定配置文件运行jar包

备注:spring加载配置文件优先级为:

Spring程序会按优先级从下面这些路径来加载application.properties配置文件
当前目录下的/config目录
当前目录
classpath里的/config目录
classpath 跟目录


#!/bin/bash 
#这里可替换为你自己的执行程序,其他代码无需更改 
APP_NAME=demo1-0.0.1-SNAPSHOT.jar 
JVM="-server -Xms512m -Xmx512m -XX:PermSize=64M -XX:MaxNewSize=128m -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"
APPFILE_PATH="-Dspring.config.location=/usr/local/demo/config/application-demo1.properties"
#使用说明,用来提示输入参数 
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 $JVM -jar $APPFILE_PATH $APP_NAME > /dev/null 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

脚本解释说明:

运行jar包方式:
1.java -jar XXX.jar  当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
2.java -jar XXX.jar &  当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
3.nohup java -jar XXX.jar &  nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
4.nohup java -jar XXX.jar >temp.txt &  与3相同  日志信息会重定向到文件中

nohup java $JVM -jar $APPFILE_PATH $APP_NAME > /dev/null 2>&1 &

解释说明:
    nohup:不挂断运行当前命令
    java $jvm -jar $appFile $app_name 指定java虚拟机配置和yml配置运行jar包
    >/dev/null 不输出任何内容
    2>&1 将标准错误重定向到标准输出
    & 表示窗口不被锁定 即窗口一直显示应用运行状态,无法做其他事情

二、tomcat部署springboot项目遇到问题处理

1.linux环境下springboot的war和jar如何部署

war包部署:直接将war包丢在tomcat下的webapps目录下面
           或者将war包解压 在server.xml文件中指定访问路径
           
jar包部署:直接写脚本 运行jar文件

2.springboot项目配置文件外部配置

可以在运行时指定配置文件,配置文件存放目录以及启动记载优先级都有说明

3.mysql远程主机连接收取

远程mysql服务器授权命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.50.182' IDENTIFIED BY '123456' WITH GRANT OPTION;

4.应用已经启动,本机可以访问,远程不能访问,检查端口或者防火墙设置

处理:开放端口或者关闭防火墙
开放端口:
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent

关闭防火墙:
启动: systemctl start firewalld
关闭: systemctl stop firewalld

猜你喜欢

转载自blog.csdn.net/leaher/article/details/83544595