记录一次在服务器上使用脚本运行 jar 包。
1、启动脚本
export JAVA_HOME=/home/jdk1.8.0_231
# jar存放目录
jarDir=/home/jar
# jar项目名
sysName=sys
# jar版本号
version=1
echo "启动 sys-1.jar"
cd $jarDir
chmod 777 $jarDir-$sysName-$version.jar
nohup ${JAVA_HOME}/bin/java -Xmx1024m -Xms1024m -Xss768k -jar $sysName-$version.jar > ./$sysName-$version.out &
以上就是 启动 sys-1.jar 的启动脚本了,日志输出在了同目录下的 sys-1.out 文件中。
2、交互方式的启动脚本
# 标题
title="*********启动项目脚本,请根据以下选择来进行操作***********"
# 选择提示
prompt="请选择你要做的操作:"
export JAVA_HOME=/home/jdk1.8.0_231
echo "JAVA所在目录:"${JAVA_HOME}
# 项目所在目录
jarDir=/home/jar
# jar项目名
sysName=sys
#应用版本号
version=1
# 菜单选项
options=("启动 $sysName 服务" "停止 $sysName 服务" "查看 $sysName 服务启动日志并退出" "查看服务运行状态")
# 打印标题
echo "$title"
PS3="$prompt "
# 罗列菜单
select opt in "${options[@]}" "退出"; do
case "$REPLY" in
1 )
# 启动服务
echo "准备启动 $sysName..."
cd $jarDir
echo "授权当前用户"
chmod 777 $sysName-$version.jar
echo "执行...."
nohup ${JAVA_HOME}/bin/java -jar $sysName-$version.jar > ./$sysName-$version.out &
echo "$sysName 启动成功"
;;
2 )
echo "准备停止 SpringBoot $sysName"
pid=`ps -ef | grep $sysName-$version.jar | grep -v grep | awk '{print $2}'`
echo "旧{$sysName-$version}进程id:$pid"
if [ -n "$pid" ]
then
kill -9 $pid
fi
;;
3 )
echo "准备查看 $sysName 服务运行日志,ctrl+c 退出"
tail -f $jarDir/$sysName-$version.out
;;
4 )
title1="****************查看服务的运行状态*****************"
prompt1="请选择你要查看的服务:"
options1=("查看 $sysName 服务的运行状态")
echo "$title1"
PS3="$prompt1 "
select opt in "${options1[@]}" "返回"; do
case "$REPLY" in
1 )
echo "准备查看 $sysName 服务运行状态"
pid=`ps -ef | grep $sysName-$version.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo " $sysName 服务的运行pid为:$pid "
else
echo " $sysName 服务未运行或者正在启动中 "
fi
;;
$(( ${#options1[@]}+1 )) ) echo "已返回!"; break;;
*) echo "当前正在进行服务运行状态的查看,请选择已有的服务选项!";;
esac
done
;;
$(( ${#options[@]}+1 )) ) echo "已退出!"; break;;
*) echo "没有此 $REPLY 选择,请重新选择!";continue;;
esac
done
效果:
以上都是单个jar包的,可以举一反三。
希望文章对你有所帮助!