是时候没有发布应用平台,只能手动敲linux命令也很烦,使用脚本就好很多
注意:把.sh运行脚本文件和要运行的jar包放在一个文件夹下,且只允许放一个.jar文件(除非自己写)
首次启用,
执行下面两行命令给所有脚本赋权,只要执行一次
chmod +x chmod.sh
./chmod.sh
chmod.sh脚本内容
# 查找当前目录及其子目录下所有的.sh脚本文件 并且775赋权
find . -name '*.sh' | xargs chmod 775
启动脚本start.sh
PORT=8060
FILEPATH=$(cd "$(dirname "$0")"; pwd)
cd $FILEPATH
JARNAME=$(basename "$(find . -name "*.jar")")
pid=`ps ux | grep $PORT | grep -v grep | awk '{print $2}'`
pidService=`ps ux | grep $JARNAME | grep -v grep | awk '{print $2}'`
if [[ $pid != "" ]] || [[ $pidService != "" ]];
then
echo " $JARNAME 服务启动错误!原因:$PORT 端口被占用或服务已启动,请检查"
echo "Startup error, Port $PORT was already in use or please check service is running and port pid=$pid service pidService=$pidService"
else
echo "Service is running ... and service name= $JARNAME"
echo "Service Post is $PORT "
nohup java -jar -Duser.timezone=GMT+08 -Dserver.port=$PORT -Dspring.config.location=application-pre.yml -Dspring.profiles.active=pre $JARNAME > service-RUN.log 2>&1 &
fi
停止脚本stop.sh
FILEPATH=$(cd "$(dirname "$0")"; pwd)
cd $FILEPATH
JARNAME=$(basename "$(find . -name "*.jar")")
pid=`ps ux | grep $JARNAME | grep -v grep | awk '{print $2}'`
if [ "$pid" != "" ];
then
kill -15 $pid
if [[ $? -eq 0 ]];
then
echo "服务停止成功"
echo "sucess to stop $JARNAME"
else
echo "服务停止失败"
echo "fail to stop $JARNAME"
fi
else
echo "服务停止错误!请检查 $JARNAME 服务是否已经启动"
echo "Stop error, please check service is running"
fi