只有流过血的手指,才能弹出世间的绝唱。——泰戈尔

分享一个部署boot项目的sh脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#环境变量
source /etc/profile
#!/bin/sh
#jdk
JAVA_HOME=/此处换成真实jdk路径
export PATH=$PATH:$JAVA_HOME/bin
export BUILD_ID=dontkillme
#定义程序名 及jar包的名
PROJECT_NAME=此处换成真实jar名称.jar
LOG_NAME=日志名.log
## 编写判断程序是否正在运行的方法
isExist() {
## 首先查找进程号
pid=$(ps -ef | grep ${PROJECT_NAME} | grep -v "grep" | awk '{print $2}')
echo "${pid}"
## 如果进程号不存在,则返回0 否则返回1
if [ -z "${pid}" ]; then
return 0
else
return 1
fi
}
## 编写启动程序方法
start() {
## 调用 判断程序是否正在运行的方法
isExist
## 判断方法返回值是否等于0 ,等于则不存在
if [ $? -eq "0" ]; then
echo "${PROJECT_NAME} is starting ......"
nohup java -jar ${PROJECT_NAME} --spring.profiles.active=prod >${LOG_NAME} 2>&1 &
echo "${PROJECT_NAME} startup success"
else
echo "${PROJECT_NAME} is already running, pid=${pid}"
restart
fi
}
## 编写停止程序的方法
stop() {
## 调用 判断程序是否正在运行
isExist
## 判断是否存在,返回值0不存在
if [ $? -eq "0" ]; then
echo "${PROJECT_NAME} is not running ......"
else
echo "${PROJECT_NAME} is already running, pid=${pid}, prepare kill it "
kill -9 ${pid}
echo "${PROJECT_NAME} has been successfully killed ......"
fi
}
## 编写重启方法
restart() {
## 先停止再启动
stop
start
}

## 程序最开始执行的
## 根据用户输入,判断执行方法
case "$1" in
"start")
start
;;
"stop")
stop
;;
"restart")
restart
;;
*)
echo "please enter the correct commands: "
echo "such as : sh startup.sh [ start | stop | restart ]"
;;
esac