【项目实战】Linux系统下jar包自启动

什么是jar包自启动

在Linux系统中,"jar包自启动"是指通过配置将Java程序打包成可执行的Jar文件,并设置其在系统启动时自动运行。以下是与jar包自启动相关的一些概念:

Jar文件:Jar(Java Archive)文件是一种用于打包和分发Java程序的文件格式。它可以包含Java类文件、资源文件和库文件等。Jar文件可以使用Java虚拟机(JVM)来运行其中的程序。

可执行Jar文件:可执行Jar文件是指嵌入了主程序入口点的Jar文件,可以直接通过Java命令或者双击运行。通过设置manifest文件中的Main-Class属性,可以将Jar文件标记为可执行文件。

启动脚本:启动脚本是一个Shell脚本,用于执行特定的操作,如设置环境变量、启动Java虚拟机并指定主程序的可执行Jar文件作为参数。启动脚本通常会将Java程序作为后台进程运行。

系统服务:在Linux系统中,可以将Jar文件作为一个系统服务来管理,以便在系统启动时自动运行。系统服务是一种提供后台功能的程序,可以通过系统启动脚本或服务管理工具(如Systemd)进行管理和控制。

Systemd:Systemd是Linux系统下的一个初始化系统和服务管理器。它可以用于管理系统服务的启动、停止、重启和状态查看等操作。通过创建和配置Systemd单元文件,可以将Jar文件作为一个Systemd服务,并设置其在系统启动时自动运行。

jar包自启动带来的好处

系统启动时自动运行:通过将Jar包设置为自启动服务,可以确保在系统启动时自动运行该程序。这对于需要在系统启动后以后台服务方式一直运行的应用程序非常有用,无需手动启动。

方便管理和维护:将Jar包作为自启动服务后,可以使用相关工具或命令对服务进行管理和维护,例如启动、停止、重启和状态查看等。这样可以简化操作,提高管理效率。

避免人工干预:自启动服务可消除人工干预的需求。您不必每次系统重启后都手动运行Jar包,这减少了出错的风险,并提高了系统的稳定性。

启动顺序控制:通过配置自启动服务,可以精确控制不同服务之间的启动顺序。如果您的应用程序依赖于其他服务或资源,在自启动服务中设置依赖关系可以确保正确的启动顺序。

日志记录和错误处理:自启动服务可以配置日志记录和错误处理机制。您可以将程序输出信息记录到日志文件中,便于故障排查和问题定位。此外,您还可以定义错误处理策略,包括自动重启或发送通知等操作,以确保服务的可靠性。

通过将Jar包设置为自启动服务,可以方便地管理和控制应用程序的运行,提高系统的可靠性和稳定性。这特别适用于后台服务、定时任务和需要在系统启动时自动运行的应用程序。

实际操作

前期准备

查看自己服务器java的版本号

java -version

在这里插入图片描述

注意:此处服务器为java11版本的 下面jarSysInit.sh脚本里的jdk环境就要改为对应的环境

步骤

1、新建jar包自启文件

sudo vi /etc/init.d/jarSysInit.sh

按i键进入编辑模式输入以下内容:

# !/bin/bash
##JDK start 配置自己服务器的JDK环境(jkd8还是11)
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
## JDK end
# 有多少个jar就后面加上去就好(这里需要参考自己jenkins的启动脚本注意全局变量$APP_PATH 要换成jar包对应的全路径)
nohup java -Xms1024m -Xmx1024m -jar /home/admin/apps/typing_provider.jar > /home/admin/apps/typing.log 2>&1 &

按esc键退出编辑模式 输入:wq保存
在这里插入图片描述
2、编辑服务器开机时自动执行的文件

sudo vi /etc/rc.d/rc.local

按i键进入编辑模式
在此文件的touch /var/lock/subsys/local底下
添加以下内容:

#开机启动jar脚本
/etc/init.d/jarSysInit.sh

在这里插入图片描述
按esc键退出编辑模式 输入:wq保存

3、提升权限两个脚本文件都是绿色
切换路径

cd /etc/rc.d

提升权限:

sudo chmod 755 /etc/rc.local

查看是否提升成功

ll

在这里插入图片描述
切换目录

cd /etc/init.d

提升权限

sudo chmod 755 /etc/init.d/jarSysInit.sh

在这里插入图片描述

总结

**当将Jar包设置为Linux系统的自启动服务时,还可以进一步丰富内容,具体包括:

系统资源管理:通过自启动服务,可以在系统启动时合理分配和管理系统资源,例如CPU、内存和网络等。可以根据实际需求对程序的资源使用进行优化,并确保其他重要任务和服务能够正常运行。

安全性增强:通过将程序设置为自启动服务,可以使用特定的用户身份或权限来运行程序,以提高安全性。可以限制访问权限,并确保只有授权用户能够访问和操作相关服务。这有助于防止未经授权的访问和潜在的安全漏洞。

监控与报警:自启动服务可以与监控工具集成,实时监控程序的运行状态。通过配置适当的监控指标和报警规则,可以及时发现和处理异常情况,例如崩溃、高负载和内存泄漏等。这有助于及时采取措施,并保证服务的可用性和稳定性。

自动更新和版本管理:利用自启动服务,可以实现程序的自动更新和版本管理。您可以设置定期检查新版本的策略,并在更新时自动下载和部署新的Jar包。这样可以确保应用程序始终使用最新的功能和修复了的漏洞,确保系统的安全性和稳定性。

扩展性和灵活性:通过自启动服务,可以在需要的情况下轻松扩展应用程序。您可以添加更多参数、配置文件和插件等,根据实际需求进行个性化的定制。这为应用程序的后续开发和维护提供了更大的灵活性和可扩展性。

综上所述,将Jar包设置为Linux系统的自启动服务不仅简化了操作流程,提高了可靠性和管理效率,还提供了更多功能和保障,如资源管理、安全性增强、监控与报警、自动更新和灵活性等。通过充分利用这些优势,您可以更好地管理和运行应用程序,以满足不断变化的需求和提供卓越的用户体验。**

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/87695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

05贪心:买卖股票的最佳时机 II

05贪心:买卖股票的最佳时机 II 122. 买卖股票的最佳时机 II 这道题目可能我们只会想,选一个低的买入,再选个高的卖,再选一个低的买入…循环反复。 如果想到其实最终利润是可以分解的,那么本题就很容易了&#xff01…

蓝牙核心规范(V5.4)10.10-BLE 入门笔记之SMP和安全性

蓝牙篇之蓝牙核心规范(V5.4)深入详解汇总 1.概述 SMP是安全管理器协议,用于蓝牙低功耗系统的安全管理。SMP协议定义了配对和Key的分发过程的实现,以及用于实现这些方法的协议和工具。SMP的内容主要是配对和Key的分发,然后用Key对链路或数据进行加密 。 安全管理器协议(…

typedoc参数列表解释

输入选项 名称说明entryPoints这个选项用于指定Typedoc生成的文档的入口点。入口点是指被文档化的对象的定义所在的文件或模块。通过指定入口点,Typedoc可以找到被文档化的对象,并生成相应的文档。这个选项可以接受一个字符串或字符串数组,用…

K-最近邻算法

一、说明 KNN算法是一个分类算法,基本数学模型是距离模型。K-最近邻是一种超级简单的监督学习算法。它可以应用于分类和回归问题。虽然它是在 1950 年代引入的,但今天仍在使用。然而如何实现,本文将给出具体描述。 来源:维基百科 …

高速USB转4路RS422串口

基于480Mbps 高速USB转8路串口芯片CH344Q,可以为各类主机扩展出4个独立的串口。CH344芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动程序,可支持Windows、Linux、Android、macOS等操作系统。因CDC类协议和类驱动的原…

Android 10.0 系统开启和关闭黑白模式主题功能实现

1. 概述 在10.0的rom系统开发定制化中,在系统SystemUI的下拉状态栏中,产品开发功能需求要求添加黑白模式功能开关的功能,就是打开黑白模式,系统颜色就会变成黑白颜色, 关闭黑白模式开关系统就会变成彩色模式,所以就需要了解下系统是怎么设置黑白模式和彩色模式的,然后添…

DA3 网站的第10位用户信息读取

目录 1.题目描述 2.输入描述 3.输出描述 4.题目分析 5.通过代码 1.题目描述 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔): Nowcoder_ID:用户ID …

git:一、GIT介绍+安装+全局配置+基础操作

版本管理系统(SVN和Git): 集中式版本控制系统(SVN) SVN是集中式版本控制系统,版本库是集中放在中央服务器的. 工作流程如下: 1.从中央服务器远程仓库下载代码 2.修改后将代码提交到中央服务器远程仓库…

with ldid... /opt/MonkeyDev/bin/md: line 326: ldid: command not found

吐槽傻逼xcode 根据提示 执行了这个脚本/opt/MonkeyDev/bin/md 往这里面添加你brew install 安装文件的目录即可

华为云云耀云服务器L实例评测|如何保障华为云云耀云服务器L实例的安全和性能

引言 云耀云服务器L实例是华为云提供的高性能计算实例,为用户提供稳定可靠的云计算环境。为了保障实例的安全和性能,用户可以通过设置防火墙和安全组策略来限制网络访问和防止恶意攻击。华为云提供了灵活的管理工具,用户可以通过控制台、API…

关于ElementUI之首页导航与左侧菜单实现

目录 一.Mock 1.1.什么是Mock.js 1.2.特点 1.3.安装与配置 1.3.1. 安装mock.js 1.3.2.引入mock.js 1.4.mockjs使用 1.4.1.定义测试数据文件 1.4.2.mock拦截Ajax请求 1.4.3.界面代码优化 二.总线 2.1.是什么 2.2.前期准备 2.3.配置组件与路由关系 2.3.1. 配置组件 …

客户端负载均衡_负载均衡策略

以前的Ribbon有多种负载均衡策略 RandomRule - 随性而为 解释: 随机 RoundRobinRule - 按部就班 解释: 轮询 RetryRule - 卷土重来 解释: 先按照RoundRobinRule的策略获取服务,如果获取服务失败则在指定时间内会进行重试。 Weigh…

Golang import

常规 import ("fmt" ) //可以直接调用 fmt.Println("Hello World!!!")省略包名引入 import import ( . "fmt" ) //可以不写包名直接调用 Println("Hello World!!!")别名 import (f "fmt" ) //可以使用自定义名称调用 f.…

北京智和信通亮相2023IT运维大会,共话数智浪潮下自动化运维新生态

2023年9月21日,由IT运维网、《网络安全和信息化》杂志社联合主办的“2023(第十四届)IT运维大会”在北京成功举办。大会以“以数为基 智引未来”为主题,北京智和信通技术有限公司(下文简称:北京智和信通&…

flask+python快速搭建

app.py """APP 入口模块""" from traceback import format_excfrom api_limiter import limiter from flask import Flask, jsonify import loggingfrom controller import api_sql_blueapp Flask(__name__) limiter.init_app(app) app.regist…

golang:context

context作用 goroutine的退出机制 多个goroutine都是平行的被调度的,多个goroutine如何协调工作涉及通信、同步、通知和退出 通信:goroutine之间的通信同步chan通道 同步:不带缓冲的chan提供了一个天然的同步等待机制。通过WaitGroup也可以…

【学习草稿】背包问题

一、01背包问题 图解详细解析 (转载) https://blog.csdn.net/qq_37767455/article/details/99086678 :Vi表示第 i 个物品的价值,Wi表示第 i 个物品的体积,定义V(i,j):当前背包容量 j,前 i 个物…

Kubernetes组件和架构简介

目录 一.概念简介 1.含义: 2.主要功能: 3.相关概念: 二.组件和架构介绍 1.master:集群的控制平面,管理集群 2.node:集群的数据平面,为容器提供工作环境 3.kubernetes简单架构图解 一.概…

技战法-信息收集

搜索引擎语法 Google hacking: site: 限制搜索范围为某一网站,例如: site:baidu.com"admin”可以搜索baidu.com 网站上包含关键词“admin”的页面。 inurl: 限制关键字出现在网址的某个部分,例如: inurl:php?id 可以搜索网址中包含 ph…

Kafka 运维必懂:从原理到调优,看完秒变大佬

1 Kafka 概述 Kafka 起初是 由 LinkedIn 公司采用 Scala 语言开发的一个多分区、多副本且基于 ZooKeeper 协调的分布式消息系统,现已被捐献给 Apache 基金会。 目前 Kafka 已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流…