摘要:直接启动目标什么意思呢就是将自带的启动内容标准错误流重定向到标准输出流,并且以在后台运行的形式去运行。之后你只需要运行这个脚本即可启动应用程序啦,如果你想查看一下日志内容,你可以输入,或者你只想查看最后几行内容即可。
SpringBoot 应用程序在 linux 下的部署及运行 将 spring boot 应用程序打包成 jar 包
我们使用 spring boot 的 maven 插件来构建管理整个应用程序,使用 mvn package 将应用程序打包成一个 jar 包将 该 jar 包上传到 服务器
上传到服务器大致有两种方式(常见的):1)通过 xftp 这种方式;2)本文将要介绍的这种,我不太建议使用 xftp,因为它太常见了,不新奇,运行
说说第二种方式吧:首先我们在 linux 服务器上,下载 lrzsz 插件,命令为:yum -y install lrzsz,然后上传文件就输入命令:rz -y ,-y 表示强制覆盖原有文件(建议使用),rz 表示上传,当然了,sz 就表示下载喽。之后就会打开一个 windows 的文件资源管理器窗口,你选择目标 jar 包即可实现上传(前提,选择好你的上传目录)
上传到服务器的指定位置了,接下来就是如何运行了!
我们都知道,java 程序在你本地运行时就是选择好入口 main,然后运行即可。但是在 linux 上就不是那么简单了。
大致呢有两种:一种是直接手动启动;一种是通过写一个脚本文件来启动。
直接启动:java -jar 目标.jar >> catalina.out 2>&1 &,什么意思呢?就是将 tomcat(spring-boot-starter-web 自带 tomcat) 的启动内容 标准错误流重定向到标准输出流(2 >&1),并且以在后台运行的形式去运行(&)。
编写启动脚本
#!/bin/bash PROJECTNAME=目标jar名称(不需要带.jar) pid=`ps -ef |grep $PROJECTNAME |grep -v "grep" |awk "{print $2}"` if [ $pid ]; then echo "$PROJECTNAME is running and pid=$pid" else echo "Start success to start $PROJECTNAME ...." nohup java -jar 目标.jar >> catalina.out 2>&1 & fi在该 .sh(脚本文件)中,使用到了命令 nohup java -jar ... nohup 就是 no hangup(不挂起),即 即使用户登出,
关闭终端后,该进程还会继续运行;采用 nohup 命令后,那么就会在当前脚本所在的同级目录下生成一个 nohup.out 的文件,
该文件就记录了整个应用启动过程以及之后运行中的所有日志内容(因为我们是将 2 标准错误 作为输出内容的,
而标准错误默认是包括所有的输出内容+错误内容)。之后你只需要运行这个脚本即可启动应用程序啦:./start.sh,
如果你想查看一下日志内容,你可以输入:vi nohup.out,或者你只想查看最后几行内容:tail -f nohup.out即可。
编写关闭脚本:
其实我们一般是不需要关闭脚本的,因为我们通常是这样操作的:进入到该应用程序所在的目录:
ps aux | grep java 或 ps -ef | grep java 二者并没有什么太大的区别,看你喜欢用哪个命令了,
然后找到该应用程序的 pid, 然后 kill -g 该pid 就杀死这个进程了。但是其实这样很麻烦,
你习惯了还好,一般我还是建议你使用 关闭脚本的#!/bin/bash PROJECTNAME=目标 pid=`ps -ef |grep $PROJECTNAME |grep -v "grep" |awk "{print $2}" ` if [ $pid ]; then echo "$PROJECTNAME is running and pid=$pid" kill -9 $pid if [[ $? -eq 0 ]];then echo "sucess to stop $PROJECTNAME " else echo "fail to stop $PROJECTNAME " fi fi一般目录结构就是如下图所示:
我实际中用的这个启动脚本内容如下:
ps:至于有人说的可能需要在 pom.xml 中指定 入口类,我持保留意见
- 2019-05-31 17:46声明
原创手敲不易,转载请注明出处,谢谢。我是拉丁小毛,欢迎大家关注我哦,一起交流,共同进步。有问题可以邮我哦(util.you.com@gmail.com)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/74717.html
摘要:一个使用容器的应用,通常由多个容器组成。使用,不再需要使用脚本来启动容器。 Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 showImg(https://segmentfault.com/img/remote/1460000012799923?w=841&h=433); 大概就几个步骤 1.安装 Docker CE 2.运行 Red...
摘要:哪吒社区技能树打卡打卡贴函数式接口简介领域优质创作者哪吒公众号作者架构师奋斗者扫描主页左侧二维码,加入群聊,一起学习一起进步欢迎点赞收藏留言前情提要无意间听到领导们的谈话,现在公司的现状是码农太多,但能独立带队的人太少,简而言之,不缺干 ? 哪吒社区Java技能树打卡 【打卡贴 day2...
摘要:你如何理解中的可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成及其他技术,而不需要到处找示例代码和依赖包。如你想使用访问数据库,只要加入启动器依赖就能使用了。 面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望。 下面,我给大家总结...
阅读 3723·2021-10-13 09:39
阅读 3789·2021-09-24 09:48
阅读 1188·2021-09-01 10:30
阅读 2525·2019-08-30 15:55
阅读 1773·2019-08-29 16:39
阅读 2295·2019-08-26 13:55
阅读 3049·2019-08-26 12:23
阅读 1633·2019-08-26 11:59