标签搜索

目 录CONTENT

文章目录

[shell]通过shell脚本正确启动Jar包方式

沙漠渔
2022-07-31 22:47:59 / 0 评论 / 0 点赞 / 1,131 阅读 / 1,049 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-07-31,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

想写一个计划任务,又不会写shell,咋办?那就写Java脚本呗,打包成Jar包,然后通过shell执行该Jar包,实现计划任务的执行。

前言

Jar包是通过idea下maven打包的springboot项目,可以去掉Web依赖,以实现程序运行完毕之后即退出,启动时不占用端口。说是面向sb编程也是可以的,因为我本来就不是一个真正的程序猿。

目的

写这个shell脚本是为了在linux下方便启动jar包时不用输入太多的shell命令,将启动脚本的一系列shell命令整理到一个xxx.sh中,每次启动此.sh文件就可以,添加宝塔的计划任务时,使用的是shell脚本,如此这般,可以不用频繁的修改shell了,把逻辑写在自己的Jar中就ok了。

脚本实现

#!/bin/bash

#jar包文件路径及名称(目录按照各自配置)
APP_NAME=/home/xxx.jar

#日志文件路径及名称(目录按照各自配置)
LOG_FILE=/opt/app/logs/xxx.log

#查询进程,并杀掉当前jar/java程序

pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
kill -9 $pid
echo "$pid进程终止成功"

sleep 2

#判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志

if test -e $APP_NAME
then
echo '文件存在,开始启动此程序...'

# 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
nohup java -jar $APP_NAME > $LOG_FILE 2>&1 &

#实时查看启动日志(此处正在想办法启动成功后退出)
tail -f $LOG_FILE

#输出启动成功(上面的查看日志没有退出,所以执行不了,可以去掉)

echo '$APP_NAME 启动成功...'
else
echo '$APP_NAME 文件不存在,请检查。'
fi

将上面脚本复制到宝塔的计划任务里,宝塔就会按照配置的任务调度自己的Jar包实现自己的逻辑处理了。

最后

其实吧,这也只是曲线救国,如果有条件,最好还是学习学习shell脚本,确实方便很多,现在在负责着公司部门的服务器资源这一块,太多东西需要使用到shell了,不会shell真的感觉非常憋足。

0
广告 广告

评论区