shell启动java

浏览: 1811

1.shell脚本

#!/bin/bash
basepath=$(cd `dirname $0`; pwd)

confpath=$basepath/../conf

logpath=$basepath/../logs

libpath=$basepath/../lib

pidfile=$basepath/../run/app.pid

prog="app"
RETVAL=0
is_systemd=`pstree -p | head -1 | grep 'systemd(1)' -q && echo 1 || echo 0`
app_arg=$2



CLASSPATH=.:$confpath:$JAVA_HOME/lib/*
for f in `ls $confpath`; do
CLASSPATH=$CLASSPATH:$confpath/$f
done

for f in `ls $libpath`; do
CLASSPATH=$CLASSPATH:$libpath/$f
done

local_checkpid(){
if [ -f $pidfile ]; then
echo "$prog pid is exists"
return 0
else
return 1
fi
RETVAL=$?
}

start() {
local_checkpid
if [ $? != 0 ]; then

java -cp $CLASSPATH -Xms1g -Xmx5g -XX:+UseG1GC com.paic.app.App $app_arg > $logpath/app.`date +%Y-%m-%d`.log 2>&1 &
echo $! > $pidfile
else
echo "$prog is already running"
exit 0
fi
RETVAL=$?
}

stop(){
local_checkpid
if [ $? == 0 ]; then
local pid=`cat $pidfile`
kill -9 ${pid}
rm -f $pidfile
echo "$prog is stopped"
else
echo "$prog is already stopped"
exit 0
fi
RETVAL=$?
}

restart() {
stop
if [ $? != 0 ]; then
return 1
fi
start
RETVAL=$?
}


case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
if [ $is_systemd -eq 1 ]; then
echo $"Usage: $prog {start|stop|restart}"
else
echo $"Usage: $prog {start|stop|restart}"
fi
RETVAL=3
esac

exit $RETVAL

2.服务器部署目录

app
|-- bin
|-- conf
|-- run
|-- logs
推荐 2
本文由 平常心 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册