注意:window编辑的shell文件,通过WinSCP上传的Linux服务器,需要改变文件的格式(查看文件格式,vim编辑后输入 :set ff)
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-1.8
export JRE_HOME=/
J
A
V
A
H
O
M
E
/
j
r
e
e
x
p
o
r
t
C
L
A
S
S
P
A
T
H
=
.
:
JAVA_HOME/jre export CLASSPATH=.:
JAVAHOME/jreexportCLASSPATH=.:JAVA_HOME/jre/lib/rt.jar
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:$JRE_HOME/bin
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=/usr/local/spring-cloud/eureka/eureka-service-0.0.1-SNAPSHOT.jar
#使用说明,用来提示输入参数
usage() {
echo “Usage: http://groups.tianya.cn/post-191232-49c6fa9b41dd4a9cb0e4907b293d9550-1.shtmlsh shell-eureka-service.sh [start|stop|restart|status]”
exit 1
}
#检查程序是否在运行
is_exist(){
pid=ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'
#如果不存在返回1,存在返回0
if [ -z “${pid}” ]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [
?
−
e
q
0
]
;
t
h
e
n
e
c
h
o
"
? -eq 0 ]; then echo "
?−eq0];thenecho"{APP_NAME} is already running. pid=${pid}"
else
nohuphttp://groups.tianya.cn/post-191232-603acf0633584d3e8d0c2583dcbad7db-1.shtml java -jar ${APP_NAME} >shell-eureka-service.out 2>&1 &
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq “0” ]; then
kill -9
p
i
d
e
l
s
e
e
c
h
o
"
pid else echo "
pidelseecho"{APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [
?
−
e
q
"
0
"
]
;
t
h
e
n
e
c
h
o
h
t
t
p
:
/
/
g
r
o
u
p
s
.
t
i
a
n
y
a
.
c
n
/
p
o
s
t
−
191232
−
e
277638
e
056642
a
2
b
a
96815
d
2
e
558
a
f
5
−
1.
s
h
t
m
l
"
? -eq "0" ]; then echo http://groups.tianya.cn/post-191232-e277638e056642a2ba96815d2e558af5-1.shtml"
?−eq"0"];thenechohttp://groups.tianya.cn/post−191232−e277638e056642a2ba96815d2e558af5−1.shtml"{APP_NAME} is running. Pid is
p
i
d
"
e
l
s
e
e
c
h
o
"
{pid}" else echo "
pid"elseecho"{APP_NAME} is NOT running."
fi
}
#重启
restart(){
stop
sleep 5
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case “$1” in
“start”)
start
;;
“stop”)
stop
;;
“status”)
status
;;
“restart”)
restart
;;
*)
usage
;;
esac