1. 部署云服务
将生成的.jar
包部署到云服务器上
先创建日志文件nohup.out
:touch nohup.out
-
nohup
:不挂断运行命令,当账户退出或终端关闭时,程序仍然运行,当用nohup
命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out
的文件中,除非另外指定了输出文件
启动服务:nohup java -jar xx.jar &
关闭服务:
-
输出端口号为
xxxx
的服务的PID:netstat -nt|grep xxxx
-
关闭服务:
kill -9 PID
参考(Linux 运行与停止 SpringBoot 项目 jar 包)
2. 部署启停脚本
停止服务脚本
#! /bin/bash
jar_name=$1
pid=`ps -ef|grep ${jar_name} |grep -v grep |grep -v stopService |awk '{print $2}'`
kill -9 ${pid}
echo ${jar_name}服务已停止
grep -v xx
:: 显示不包含匹配文本xxx的所有行
awk
基本格式: awk [选项] '脚本命令' 文件名
awk `{print $2}`: 输出第二个字段
需要注意的是,整个脚本命令是用单引号('')括起,而其中的执行命令部分需要用大括号{}括起来。
awk 的主要特性之一是其处理文本文件中数据的能力,它会自动给一行中的每个数据元素分配一个变量。
默认情况下,awk 会将如下变量分配给它在文本行中发现的数据字段:
- $0 代表整个文本行;
- $1 代表文本行中的第 1 个数据字段;
- $2 代表文本行中的第 2 个数据字段;
- $n 代表文本行中的第 n 个数据字段。
前面说过,在 awk 中,默认的字段分隔符是任意的空白字符(例如空格或制表符)。 在文本行中,每个数据字段都是通过字段分隔符划分的。awk 在读取一行文本时,会用预定义的字段分隔符划分每个数据字段。
所以在下面的例子中,awk 程序读取文本文件,只显示第 1 个数据字段的值:
cat data2.txt
One line of test text.
Two lines of test text.
Three lines of test text.awk '{print $1}' data2.txt
One
Two
Three
启动服务脚本
#! /bin/bash
jar_name=$1
nohup java -jar $jar_name &