获取中...

-

Just a minute...

将 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),并且以在后台运行的形式去运行(&)。

脚本启动

编写启动脚本

1
2
3
4
5
6
7
8
9
#!/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 javaps -ef | grep java 二者并没有什么太大的区别,看你喜欢用哪个命令了,
然后找到该应用程序的 pid, 然后 kill -g 该pid 就杀死这个进程了。但是其实这样很麻烦,
你习惯了还好,一般我还是建议你使用 关闭脚本的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/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 中指定 入口类,我持保留意见

相关文章
评论
分享
  • ubuntu 安装 redis

    redis是什么Redis是常用基于内存的Key-Value数据库,比Memcache更先进,支持多种数据结构,高效,快速。用Redis可以很轻松解决高并发的数据访问问题 环境Ubuntu18.04 准备工作sudo apt upda...

    ubuntu 安装 redis
  • css基本样式设置

    div中文字居中如何让一个div中的文字水平和垂直居中?设置如下:给定该div的长宽(或者二者只给出其一也可) 123456.box{ height: 100px; width: 30%; text-align: cente...

    css基本样式设置
  • nginx在centos7下的安装

    nginx是什么Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 的服务Nginx 特点是占有内存少,并发能力强一般来说,如果我们在项目中引入了 Nginx ,我们的项目架构...

    nginx在centos7下的安装
  • Java 中 IO 操作总结

    java IO 操作分析直接看代码吧 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535...

    Java 中 IO 操作总结
  • shell知识点

    概念 啥叫shell脚本呢?其实就是一个批处理文件,里面写了许多的命令,只需要运行这个文件,就相当于一次执行了许多命令shell脚本的后缀名是 .sh 一个最简单的shell示例第一种书写shell脚本的方式1234#就相当于常...

    shell知识点