#!/bin/bash
定义 服务的关键字
KEYWORD=“XXX.jar”
定义日志文件路径
LOG_FILE=“/data/xxx/watch_xxx.log”
echo
J
A
V
A
H
O
M
E
>
>
"
JAVA_HOME >> "
JAVAHOME>>"LOG_FILE"
定义记录时间戳的函数
timestamp(){
date “+%Y-%m-%d %H:%M:%S”
}
检查 tapdata 服务是否正常运行的函数
check_xxx(){
执行 ps 命令并使用 grep 过滤关键字
ps_output= ( p s − e f ∣ g r e p " (ps -ef | grep " (ps−ef∣grep"KEYWORD" | grep -v grep | wc -l)
检查 grep 命令的返回值
if [
p
s
o
u
t
p
u
t
−
l
e
0
]
;
t
h
e
n
e
c
h
o
"
ps_output -le 0 ]; then echo "
psoutput−le0];thenecho"(timestamp): xxx 服务已停止1,正在重启…" >> “$LOG_FILE”
return 0
else
tapdata 服务运行中
echo "$(timestamp): xxx 正常运行中..." >> "$LOG_FILE"
return 1
fi
}
无限循环监控 xxx服务状态并重启
if check_xxx; then
echo “
(
t
i
m
e
s
t
a
m
p
)
:
x
x
x
服务已停止
2
,正在重启
.
.
.
"
>
>
"
(timestamp): xxx 服务已停止2,正在重启..." >> "
(timestamp):xxx服务已停止2,正在重启...">>"LOG_FILE”
echo
J
A
V
A
H
O
M
E
>
>
"
JAVA_HOME >> "
JAVAHOME>>"LOG_FILE"
在这里添加重启 xxx服务的命令,比如使用 systemctl 或 service 命令
/data/xxx/xxx start
echo “
(
t
i
m
e
s
t
a
m
p
)
:
x
x
x
服务已重启
3
。
"
>
>
"
(timestamp): xxx 服务已重启3。" >> "
(timestamp):xxx服务已重启3。">>"LOG_FILE”
fi