Linux中jar包实现自动重启、开机自启方案

想要实现自动重启、开机自启方式有很多,这里使用一种简单优雅的方式。

不需要写Shell脚本,再用cron定时任务去不断扫描进程。

步骤1:准备你的Java Jar包

确保你的Java应用已经被打包成Jar,并且放置在一个合适的目录中,例如/opt/your-app/your-app.jar。

步骤2:创建systemd服务文件

在/etc/systemd/system/目录下创建一个新的服务文件,例如your-app.service。

bash 复制代码
[Unit]
# 应用描述
Description=java应用
After=network.target
[Service]
# 工作目录
WorkingDirectory=/opt/your-app/
User=root
# 运行jar包的指令
ExecStart=/usr/local/jdk/jdk-17.0.10/bin/java -jar -Xmx1536m /opt/your-app/your-app.jar
# 收到正常停止命令时不自动重启(systemctl stop 时不会自动重启)
SuccessExitStatus=143
# 在服务失败时自动重启
Restart=on-failure
# 重启前等待10秒
RestartSec=10
# 重启尝试间隔时间
StartLimitInterval=10
# 间隔时间内的最大重启尝试次数
StartLimitBurst=3

[Install]
WantedBy=multi-user.target

确保你将上方文件放在 /etc/systemd/system/ ( systemd 服务文件的标准存放位置) 目录下后执行下方指令刷新

bash 复制代码
sudo systemctl daemon-reload 

步骤3:启用服务

启用服务,使其在开机时自动启动:

bash 复制代码
sudo systemctl enable your-app.service

步骤4:启动服务

至此就可以使用systemctl指令管理你的java应用了。

bash 复制代码
# 启动
sudo systemctl start your-app.service
# 停止
sudo systemctl stop your-app.service
# 查看状态
sudo systemctl status your-app.service

测试自动重启

使用 ps -ef |grep you-app.jar 查询出进程号并手动kill,稍等片刻后systemd将会自动帮你将应用重启

相关推荐
倔强的石头1061 小时前
云原生环境下的存储弹性与自动化:表空间目录动态挂载与冷热分层实践
运维·云原生·自动化
SilentSamsara1 小时前
生成器完全指南:`yield` 与惰性求值的工程价值
linux·开发语言·python·算法·机器学习·青少年编程
Tim风声(网络工程师)8 小时前
光功率计中的红光(光衰测试设备)的使用
运维·网络
ar01238 小时前
AR电路巡检:让电力运维进入智能可视化时代
运维·人工智能·ar
2301_7807896610 小时前
云服务器数据会泄露吗?怎么保护云服务器的数据
运维·服务器·tcp/ip·网络安全
2301_7807896610 小时前
云服务器被黑能恢复吗?云服务器被黑的解决办法
运维·服务器·网络·安全·web安全
淘小白_TXB219610 小时前
头条百家采集改写发布软件用户使用手册
运维·服务器·头条采集·头条号采集·文章采集·头条采集软件
不怕犯错,就怕不做11 小时前
RK3562的CPU如何降频及关闭硬件编解码
linux·驱动开发·嵌入式硬件
CoderMeijun11 小时前
Linux 文件操作详解:open/read/write/lseek 系统调用
linux·文件操作·系统调用·open·文件描述符
可可西里_X_back11 小时前
Linux学习(二)- 驱动开发步骤
linux·驱动开发·学习