Linux定时启动jar应用shell脚本分享

news/2024/9/18 21:02:17 标签: linux

1、如何精确找到jar应用进程

# 以 dist-app-manage.jar 为例
[root@localhost dist-app-manage-8083]# ps -ef|grep dist-app-manage.jar 
root       5134   5033  0 21:24 pts/0    00:00:00 grep --color=auto dist-app-manage.jar
root      21766      1  1 Sep02 ?        03:16:25 java -jar dist-app-manage.jar --server.port=8083
root      34853      1  1 Sep11 ?        00:48:09 java -jar /opt/huaian/application/report-manager-8070/dist-app-manage.jar --server.port=8070
[root@localhost dist-app-manage-8083]# 

# 以上可以看出如果是集群环境,我们只是使用jar文件名来查找进程的话,会查出来多个
# 所以我们加上命令行参数就能精确定位某个jar进程,例如

#!/bin/bash
path=/opt/huaian/application/report-manager-8070/dist-app-manage.jar
pid=$(ps aux | grep 'java -jar '$path' --server.port=8070' | awk '{print $2}')
echo "debug $pid"

2、编辑启动脚本

我们要实现的功能也很简单,就是精确找到jar应用的进程ID,判断是否有进程ID,如果有进程ID就杀死进程,否则直接启动即可。详见以下脚本:

vi start.sh

#!/bin/bash
# java -Xmx8g -Xms4g -Xmn2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseParallelGC -XX:+UseParallelOldGC -jar dist-app-cvt.jar --server.port=8088 --spring.datasource.url=jdbc:h2:./dist-app-cvt --cvt.cache-path=./dist-cvt
JAR_PATH=/home/application/dist-cvt-8088/dist-app-cvt.jar
APP_LOG_PATH=/home/application/dist-cvt-8088/app.log

pid=$(ps aux | grep 'java -Xmx8g -Xms4g -Xmn2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseParallelGC -XX:+UseParallelOldGC -jar '$JAR_PATH' --server.port=8088 --spring.datasource.url=jdbc:h2:./dist-app-cvt --cvt.cache-path=./dist-cvt' | awk '{print $2}')

if [ -n "$pid" ]; then
    # kill process
    echo "===> [$JAR_PATH] pid = $pid"
    kill -9 $pid
    sleep 5
fi

# 删除日志文件
rm -rf $APP_LOG_PATH

# 导出outsidein环境变量
source /etc/profile.d/ev.sh

nohup java -Xmx8g -Xms4g -Xmn2g -XX:MetaspaceSize=256m \
-XX:MaxMetaspaceSize=512m \
-XX:+UseParallelGC \
-XX:+UseParallelOldGC \
-jar $JAR_PATH \
--server.port=8088 \
--spring.datasource.url=jdbc:h2:./dist-app-cvt \
--cvt.cache-path=./dist-cvt \
>> $APP_LOG_PATH 2>&1 &

new_pid=$(ps aux | grep 'java -Xmx8g -Xms4g -Xmn2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseParallelGC -XX:+UseParallelOldGC -jar '$JAR_PATH' --server.port=8088 --spring.datasource.url=jdbc:h2:./dist-app-cvt --cvt.cache-path=./dist-cvt' | awk '{print $2}')

if [ -n "$new_pid" ]; then
    # new process id
    echo "===> start success new pid = $new_pid"
else 
    echo "===> start error not found [ $JAR_PATH ] start process"
fi

3、设置定时任务

# 查看当前系统定时任务
crontab -l

# 编辑定时任务
crontab -e
0 6 * * * /home/application/dist-cvt-8088/start.sh
# 0 分
# 6 时(6代表凌晨两点整)
# * 天
# * 月
# * 年

http://www.niftyadmin.cn/n/5664517.html

相关文章

window下idea中scala的配置

目录 Scala安装步骤: 1.下载scala安装包 2.配置环境变量: 3.检查scala是否安装成功: 4.idea安装scala插件 5.导入scala-sdk 6.新建scala文件 Scala安装步骤: 1.下载scala安装包 访问Scala官网:https://www.sca…

自然语言处理实战项目

自然语言处理(NLP)实战项目是一个结合了理论学习和实践操作的综合性任务,旨在通过具体项目来加深学习者对NLP技术的理解和应用能力。以下是一些常见的NLP实战项目及其描述: 1. 文本分类 项目描述: 文本分类是NLP中的…

原生 input 中的 “type=file“ 上传文件

目标&#xff1a;实现文件上传功能 原型图&#xff1a; HTML部分&#xff1a; <div class"invoice-item"><div class"invoice-title">增值税专用发票</div><div class"invoice-box"><el-form-item label"标准…

《MmAP : Multi-Modal Alignment Prompt for Cross-Domain Multi-Task Learning》中文校对版

系列论文研读目录 文章目录 系列论文研读目录摘要1 引言2 相关工作3 方法3.1对比图像预训练3.2 多模式对齐提示3.3 多任务提示学习框架 4 实验4.1基准设置4.2实验结果4.3消融研究 5、结论 摘要 多任务学习&#xff08;Multi-Task Learning&#xff0c;MTL&#xff09;是为了同…

如何打造出强悍的谷歌搜索关键词优化方案揭密

搭建一个成功的关键词优化规划是促进网站在谷歌搜索引擎中取得更强曝光和流量重要。本文将为你揭露七个秘笈&#xff0c;帮助自己打造出强悍的谷歌搜索关键词优化方案。1.目标制定在进行优化关键词以前&#xff0c;必须明确自己的目标。你希望用谷歌搜索引擎获得更多浏览量和访…

【计算机网络】第一章

目录 一、计算机网络的各种定义 二、计算机网络的发展 三、计算机网络的功能 四、计算机网络的分类 五、Internet的组成 六、交换 一、计算机网络的各种定义 Internet&#xff1a;因特网&#xff08;外国资源&#xff09; internet&#xff1a;互联网络&#xff08;两个或…

理解AAC和Opus的编码与解码流程

理解AAC和Opus的编码与解码流程及其在Android中的实现,对于音频开发非常重要。下面,我将详细解释这两种编码格式的原理、流程,并结合具体代码示例,帮助你在Android项目中合理地设计和使用它们。 一、AAC(Advanced Audio Coding) 1. AAC的原理与流程 AAC是一种有损音频压…

8--SpringBoot原理分析、注解-详解(面试高频提问点)

目录 SpringBootApplication 1.元注解 --->元注解 Target Retention Documented Inherited 2.SpringBootConfiguration Configuration Component Indexed 3.EnableAutoConfiguration&#xff08;自动配置核心注解&#xff09; 4.ComponentScan Conditional Co…