什么是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包。这样可以确保应用程序始终使用最新的功能和修复了的漏洞,确保系统的安全性和稳定性。
扩展性和灵活性:通过自启动服务,可以在需要的情况下轻松扩展应用程序。您可以添加更多参数、配置文件和插件等,根据实际需求进行个性化的定制。这为应用程序的后续开发和维护提供了更大的灵活性和可扩展性。文章来源:https://www.uudwc.com/A/zkv35/
综上所述,将Jar包设置为Linux系统的自启动服务不仅简化了操作流程,提高了可靠性和管理效率,还提供了更多功能和保障,如资源管理、安全性增强、监控与报警、自动更新和灵活性等。通过充分利用这些优势,您可以更好地管理和运行应用程序,以满足不断变化的需求和提供卓越的用户体验。**文章来源地址https://www.uudwc.com/A/zkv35/