Linux环境下Springboot jar 启动方式

springboot打成jar包后。我们需要将jar在linux环境部署,前提linux系统已安装java运行环境。

启动方式1:

java -jar app.jar 前台启动

启动方式2:

nohup java -jar app.jar & 后台启动
区别:前台启动ctrl+c就会关闭程序,后台启动ctrl+c不会关闭程序

制定控制台的标准输出
java -jar app.jar > catalina.out 2>&1 &

  • catalina.out将标准输出指向制定文件catalina.out
  • 2>&1 输出所有的日志文件
  • & 后台启动

对于上面的命令的解释:
bash 中 0、1、2 三个数字分别代表 STDIN_FILENO 、 STDOUT_FILENO 、STDERR_FILENO ,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。

数字 含义
0 标准输入(一般是键盘)
1 标准输出(一般是显示屏,准确的说是用户终端控制台)
2 标准错误(出错信息输出)

启动方式3:

编写shell脚本启动

在app.jar 同目录下编辑app.sh脚本文件
内容如下:

#!/bin/sh
#功能简介:启动app.jar 文件
#注意:在sh文件中=赋值,左右两侧不能有空格


APP=app
APP_NAME=${APP}".jar"

log_dir=/home/jar_logs/
log_file=/home/jar_logs/app.log

command=$1

# 启动
function start(){
    # 日志文件夹不存在,则创建
    if [ ! -d "${log_dir}" ];then
        mkdir "${log_dir}"
    fi

    rm -f tpid
    nohup java -jar ${APP_NAME} 1>/dev/null 2>"${log_file}" &
    echo $! > tpid
    check
}

# 停止
function stop(){
    tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
    if [ ${tpid} ]; then
        echo 'stop process...'
        kill -15 $tpid
    fi

    sleep 5

    tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
    if [ ${tpid} ]; then
        echo 'Kill Process!'
        kill -9 $tpid
    else
        echo 'Stop Success!'
    fi
}

# 检查
function check(){
    tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
    if [ ${tpid} ]; then
        echo 'App is running.'
    else
        echo 'App is NOT running.'
    fi

}

# 强制kill进程
function forcekill(){
    tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`

    if [ ${tpid} ]; then
        echo 'Kill Process!'
        kill -9 $tpid

    fi

}

# 输出进程号
function showtpid(){
    tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
    if [ ${tpid} ]; then
        echo 'process '$APP_NAME' tpid is '$tpid
    else
        echo 'process '$APP_NAME' is not running.'
    fi
}

if [ "${command}" ==  "start" ]; then
    start

elif [ "${command}" ==  "stop" ]; then
     stop

elif [ "${command}" ==  "check" ]; then
     check

elif [ "${command}" ==  "kill" ]; then
     forcekill

elif [ "${command}" == "tpid" ];then
     showtpid

else
    echo "Unknow argument...."
fi

编写完成后需要将脚本文件设置超级管理员权限
chmod +x app.sh

之后使用./app.sh start/stop等命令启动即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,118评论 6 342
  • 本篇结构: 前言 bat文件 startup.bat catalina.bat 总结 一、前言 一般启动tomca...
    w1992wishes阅读 5,185评论 1 5
  • 这是个一个听来的关于的创新的真人真事。做好准备,脑洞很大。这哥们儿号称他搞出一个不知道什么技术,可以实时分析体育赛...
    北美之北阅读 3,318评论 0 4
  • 天空有白鸟盘旋/幽灵在山谷里高歌/龙等待着/死去的人回到粉色的墓地/俯冲而下/啄食遗落的心脏
    云雀儿阅读 1,418评论 0 0

友情链接更多精彩内容