#!/bin/bash
# 定义变量
# 要运行的jar包路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
JAR_NAME=vcxcx.jar
# 日志路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
LOG_PATh=/opt/xcx/vcxcx_log/vcxcx-$(date +%Y-%m-%d).log
# 如果输入格式不对,给出提示!
tips() {
echo ""
echo "WARNING!!!......Tips, please use command: sh auto_deploy.sh [start|stop|restart|status]. For example: sh auto_deploy.sh start "
echo ""
exit 1
}
# 启动方法
start() {
# 重新获取一下pid,因为其它操作如stop会导致pid的状态更新
pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
# -z 表示如果$pid为空时执行
if [ -z $pid ]; then
nohup java -jar app_name.jar >> /home/log/app_name-$(date +%Y-%m-%d).log 2>&1 &
pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
echo ""
echo "Service ${JAR_NAME} is starting!pid=${pid}"
echo "........................Here is the log.............................."
echo "....................................................................."
tail -f $LOG_PATh
echo "........................Start successfully!........................."
else
echo ""
echo "Service ${JAR_NAME} is already running,it's pid = ${pid}. If necessary, please use command: sh auto_deploy.sh restart."
echo ""
fi
}
# 停止方法
stop() {
# 重新获取一下pid,因为其它操作如start会导致pid的状态更新
pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
# -z 表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
if [ -z $pid ]; then
echo ""
echo "Service ${JAR_NAME} is not running! It's not necessary to stop it!"
echo ""
else
kill -9 $pid
echo ""
echo "Service stop successfully!pid:${pid} which has been killed forcibly!"
echo ""
fi
}
# 输出运行状态方法
status() {
# 重新获取一下pid,因为其它操作如stop、restart、start等会导致pid的状态更新
pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
# -z 表示如果$pid为空时执行。注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
if [ -z $pid ];then
echo ""
echo "Service ${JAR_NAME} is not running!"
echo ""
else
echo ""
echo "Service ${JAR_NAME} is running. It's pid=${pid}"
echo ""
fi
}
# 重启方法
restart() {
echo ""
echo ".............................Restarting.............................."
echo "....................................................................."
# 重新获取一下pid,因为其它操作如start会导致pid的状态更新
pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
# -z 表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
if [ ! -z $pid ]; then
kill -9 $pid
fi
start
echo "....................Restart successfully!..........................."
}
# 根据输入参数执行对应方法,不输入则执行tips提示方法
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
tips
;;
esac
下面是关于jeecgsite的启动修改:
#!/bin/bash
日志路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
echo “”
echo “[信息] 运行Web工程。”
echo “”
LOG_PATh=/opt/xcxAdmin/previousLogs/$(date +%Y-%m-%d).log
PORT=8988
如果输入格式不对,给出提示!
tips() {
echo “”
echo "WARNING!!!..Tips, please use command: sh auto_deploy.sh [start|stop|restart|status]. For example: sh auto_deploy.sh start "
echo “”
exit 1
}
设置JDK目录
JAVA_HOME="$PWD/jdk1.8.0_x64"
设置类加载路径
CLASS_PATH="$PWD/…/"
优化JVM参数
JAVA_OPTS="-Xms512m -Xmx1024m"
方式一、配置外部自定义的属性文件(建议)
JAVA_OPTS=“ J A V A O P T S − D s p r i n g . c o n f i g . l o c a t i o n = JAVA_OPTS -Dspring.config.location= JAVAOPTS−Dspring.config.location=PWD/app.yml”
方式二、配置环境名称,加载不同的属性文件
JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=prod"
if [ -z “
J
A
V
A
H
O
M
E
"
]
;
t
h
e
n
R
U
N
J
A
V
A
=
j
a
v
a
e
l
s
e
R
U
N
J
A
V
A
=
"
JAVA_HOME" ]; then RUN_JAVA=java else RUN_JAVA="
JAVAHOME"];thenRUNJAVA=javaelseRUNJAVA="JAVA_HOME”/bin/java
fi
启动方法
start() {
# 重新获取一下pid,因为其它操作如stop会导致pid的状态更新
pid=KaTeX parse error: Undefined control sequence: \< at position 24: … -nlp | grep :'\̲<̲'PORT’>’ | awk ‘{print $7}’ | awk -F"/" ‘{ print KaTeX parse error: Expected 'EOF', got '}' at position 3: 1 }̲') # -z…pid为空时执行
if [ -z $pid ]; then
exec $RUN_JAVA -cp $CLASS_PATH $JAVA_OPTS org.springframework.boot.loader.WarLauncher >> KaTeX parse error: Expected 'EOF', got '&' at position 12: LOG_PATh 2>&̲1 & pid=(netstat -nlp | grep :’<’$PORT’>’ | awk ‘{print $7}’ | awk -F"/" '{ print KaTeX parse error: Expected 'EOF', got '}' at position 3: 1 }̲') echo "" …{pid}"
echo “…Here is the log…”
echo “…”
tail -f $LOG_PATh
echo “…Start successfully!…”
else
echo “”
echo “Service xcxAdmin is already running,it’s pid = ${pid}. If necessary, please use command: sh auto_deploy.sh restart.”
echo “”
fi
}
停止方法
stop() {
# 重新获取一下pid,因为其它操作如start会导致pid的状态更新
pid=KaTeX parse error: Undefined control sequence: \< at position 24: … -nlp | grep :'\̲<̲'PORT’>’ | awk ‘{print $7}’ | awk -F"/" '{ print KaTeX parse error: Expected 'EOF', got '}' at position 3: 1 }̲') # -z…pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
if [ -z $pid ]; then
echo “”
echo “Service xcxAdmin is not running! It’s not necessary to stop it!”
echo “”
else
kill -9
p
i
d
e
c
h
o
"
"
e
c
h
o
"
S
e
r
v
i
c
e
s
t
o
p
s
u
c
c
e
s
s
f
u
l
l
y
!
p
i
d
:
pid echo "" echo "Service stop successfully!pid:
pidecho""echo"Servicestopsuccessfully!pid:{pid} which has been killed forcibly!"
echo “”
fi
}
输出运行状态方法
status() {
# 重新获取一下pid,因为其它操作如stop、restart、start等会导致pid的状态更新
pid=KaTeX parse error: Undefined control sequence: \< at position 24: … -nlp | grep :'\̲<̲'PORT’>’ | awk ‘{print $7}’ | awk -F"/" '{ print KaTeX parse error: Expected 'EOF', got '}' at position 3: 1 }̲') # -z…pid为空时执行。注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
if [ -z
p
i
d
]
;
t
h
e
n
e
c
h
o
"
"
e
c
h
o
"
S
e
r
v
i
c
e
x
c
x
A
d
m
i
n
i
s
n
o
t
r
u
n
n
i
n
g
!
"
e
c
h
o
"
"
e
l
s
e
e
c
h
o
"
"
e
c
h
o
"
S
e
r
v
i
c
e
x
c
x
A
d
m
i
n
i
s
r
u
n
n
i
n
g
.
I
t
′
s
p
i
d
=
pid ];then echo "" echo "Service xcxAdmin is not running!" echo "" else echo "" echo "Service xcxAdmin is running. It's pid=
pid];thenecho""echo"ServicexcxAdminisnotrunning!"echo""elseecho""echo"ServicexcxAdminisrunning.It′spid={pid}"
echo “”
fi
}
重启方法
restart() {
echo “”
echo “…Restarting…”
echo “…”
# 重新获取一下pid,因为其它操作如start会导致pid的状态更新
pid=KaTeX parse error: Undefined control sequence: \< at position 24: … -nlp | grep :'\̲<̲'PORT’>’ | awk ‘{print $7}’ | awk -F"/" '{ print KaTeX parse error: Expected 'EOF', got '}' at position 3: 1 }̲') # -z…pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
if [ ! -z $pid ]; then
kill -9 $pid
fi
start
echo “…Restart successfully!…”
}
根据输入参数执行对应方法,不输入则执行tips提示方法
case “$1” in
“start”)
start
;;
“stop”)
stop
;;
“status”)
status
;;
“restart”)
restart
;;
*)
tips
;;
esac