java项目服务部署,启停脚本

1. 部署云服务

将生成的.jar包部署到云服务器上

先创建日志文件nohup.outtouch 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 &

posted @ 2021-10-27 09:21  Bekbek  阅读(303)  评论(0编辑  收藏  举报