脚本说明
脚本是通过运行测试的,实现的功能:
先根据启动时的 jar 文件名搜索服务进程 ID,根据进程 ID 杀死对应服务;通过 nohup 启动 jar,使之后台运行;等待 jar 服务的运行日志文件生成,然后通过 tail 命令及时动态显示日志内容
脚本内容
#! /bin/bash
my_profile
="pro"
project_name
="jzy-dinner-fast-1.1.0.jar";
log_file_path
="./logs/jzy-dinner.log"
if [ -n
"$1" ]; then
my_profile
="$1"
fi
echo " >>> begining lauch project $project_name ....."
pid
=$(jps -l|grep $project_name|cut -d ' ' -f1)
echo " >>> source project process id : $pid"
if [ $pid ]
then
echo " >>> kill source project ......"
kill -9
$pid
sleep 3
echo " >>> restart project ......"
else
echo " >>> start project......"
fi
nohup java -Xms1g -Xmx1g -Xss1024K -XX:MetaspaceSize
=128m -XX:MaxMetaspaceSize
=512m -server -jar -Dfile.encoding
=utf-8 ./
$project_name --spring.profiles.active
=$my_profile >/dev/null 2
>&1
&
spin
='-\|/'
i
=0
until [ -f
$log_file_path ]
do
i
=$(( (i+1) %4 ))
printf "\r[${spin:$i:1}]"
sleep 0.1
done
printf "\n\n >>> tail -f "$log_file_path"\n\n"
tail -5f
$log_file_path
※ 关于 >/dev/null 2>&1,请参考 nohup 中关于 >/dev/null 2>&1 的相关说明
【完】