该脚本提供了4个函数
info():打印系统环境参数,启动命令为./java.sh info
start():启动程序,启动命令为./java.sh start
stop():停止程序,启动命令为./java.sh stop
status():查看状态,启动命令为./java.sh status
在启动命令前需cd目录到 java.sh 所在目录
java.sh
#!/bin/bash
#jdk所在路径
JAVA_HOME = '/usr/local/java/jdk1.8.0_181'
#项目名称
APP_NAME = api.jar
#项目所在路径
APP_HOME = /home/appuser/xxx/$APP_NAME
#jvm启动参数
JAVA_OPTS = '-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./heap'
#初始化psid变量
psid = 0
##################################
#打印系统环境参数
##################################
info() {
echo "System information:"
echo "***********************"
echo `head -n 1 /etc/issue`
echo `uname -a`
echo
echo "JAVA_HOME = $JAVA_HOME"
echo `java -version`
echo
echo "***********************"
}
##################################
#判断程序是否启动,并返回进程id
##################################
checkpid() {
javaps = `ps -ef | grep $APP_NAME | grep -v auto | grep -v kill | grep -v grep | awk '{print $2}'`
if[-n "$javaps"]; then
psid = `echo $javaps`
else
psid = 0
fi
}
##################################
#启动程序
##################################
start() {
checkpid
if["$psid" -ne 0]; then
echo "warn: app already started!(psid = $psid)"
else
echo -n "***********starting************"
JAVA_CMD = `nohup java $JAVA_OPTS -jar $APP_HOME >/dev/null 2>&1 &`
echo "start success"
tail -f 200f xxx/xxx.log
fi
}
##################################
#停止程序
##################################
stop() {
checkpid
if["$psid" - ne 0]; then
echo -n "Stopping app(pid = $psid)"
kill -9 $psid
if [$? -eq 0]; then
echo "stop success"
else
echo "stop fail"
fi
else
echo "***********************"
echo "warn app is not running"
echo "***********************"
}
##################################
#查看状态
##################################
status() {
checkpid
if["$psid" -ne 0]; then
echo "app is running(pid=$psid)"
else
echo "app is not running"
fi
}
case "$1" in
'info')
info
;;
'start')
start
;;
'stop')
stop
;;
'status')
status
;;
esac
版权声明:本文为yujiubo2008原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。