Linux服务器Java启动脚本

2024-09-09 08:20

本文主要是介绍Linux服务器Java启动脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux服务器Java启动脚本

  • 1、初版
  • 2、优化版本
  • 3、常用脚本仓库

本文章介绍了如何在Linux服务器上执行Java并启动jar包,
通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动,
那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。

在这里插入图片描述

1、初版

第一个版本是常用的做法,直接使用nohup后台启动jar包,
并将日志输出到当前文件夹nohup.out文件。
这个脚本的优点就是启动快速,完全自己控制,
但是需要手动先停止,然后在启动本脚本。

#!/bin/bash############################
# Version: v1.0
# Author: Jack 魏
# Description: jar包启动脚本
############################nohup java -jar xxx.jar  --server.port=8081 --spring.profiles.active=prod 2>&1 &

2、优化版本

这个脚本虽然写的比较多,而且还涉及到lsof工具的安装。
但是这个还是比较优雅的,将jar包直接上传到服务器之后(需要替换之前的jar包)
然后直接执行本脚本即可,不需要再手动停止即可重启服务。

#!/bin/bash############################
# Version: v2.0
# Author: Jack 魏
# Description: jar包启动脚本
############################# 应用端口
PORT=8080
# jar包名
JAR_NAME='xxx.jar'
# 根据端口找到pid【注意这里使用了lsof命令,如果没有安装需要:yum install -y lsof】
pid=$(lsof -ti :$PORT)start=$(date +%s%3N)
if [ -z "$pid" ]; thenecho "应用端口: $PORT 进程未启动!"
elseecho "正在运行的应用端口为: $PORT ,PID为: $pid"if kill -0 $pid > /dev/null 2>&1; thenecho "正在停止应用的PID为: $pid"kill -15 $pidsleep 2 # 给进程一些时间来优雅地关闭if kill -0 $pid > /dev/null 2>&1; thenecho "当前应用进程没有正常终止,正在强制关闭中..."kill -9 $pidfielseecho "$JAR_NAME 当前应用未启动!"fi
fi
end=$(date +%s%3N)
echo "关闭应用成功,用时:$((end - start)) ms"echo "$JAR_NAME 重启中,请稍后..."
nohup java -jar $JAR_NAME --server.port=$PORT --spring.profiles.active=prod 2>&1 &# 实时查看日志
tail -f nohup.out

3、常用脚本仓库

https://gitee.com/jack0240/my-room

这篇关于Linux服务器Java启动脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1150636

相关文章

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

Spring Cloud LoadBalancer 负载均衡详解

《SpringCloudLoadBalancer负载均衡详解》本文介绍了如何在SpringCloud中使用SpringCloudLoadBalancer实现客户端负载均衡,并详细讲解了轮询策略和... 目录1. 在 idea 上运行多个服务2. 问题引入3. 负载均衡4. Spring Cloud Load

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多