ubuntu20.04设置开机自启动jar(依赖其他服务)

目的:

有的时候我们的项目是部署在物理机上给其他公司员工使用,对于他们来说操作越简单越好。所以我需要实现将我的jar部署在ubuntu上,实现开机自启。(我的项目依赖emqx服务)。

步骤:

切换到system目录

bash 复制代码
cd /etc/systemd/system

创建服务文件

sims.service(服务名字你们自定义)

文件内容如下:

bash 复制代码
[Unit]
Description=Spring Boot Application sims
After=network.target emqx.service

[Service]
User=main
ExecStart=/opt/env/jdk-11.0.20/bin/java -jar /usr/sims/v1.0.0/sims-0.0.1-SNAPSHOT.jar
SuccessExitStatus=143
TimeoutStopSec=10
Restart=no
RestartSec=5

[Install]
WantedBy=multi-user.target

解释

After=network.target emqx.service 因为sims依赖了emqx 所以需要在emqx后启动

User为你的用户 我的用户名称为main 这里要确保你执行的jar的目录下 你的main用户有该权限

ExecStart前面的为你的java目录 可以通过which java 命令获取到

Restart=no 在你kill掉后就不会重启 如果Restart=on-failure 那么失败后就会重启这个服务 比如kill掉

注意

每次修改完毕后记得 执行

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart sims.service

检查服务状态

bash 复制代码
systemctl status sims.service

服务停止

bash 复制代码
sudo systemctl stop sims.service
相关推荐
剑神一笑13 分钟前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法
linux·运维·chrome
Lumbrologist14 分钟前
【零基础部署】Docker 部署 CrewAI 多 Agent 编排框架保姆级教程
运维·docker·容器
AI人工智能+电脑小能手26 分钟前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
yyuuuzz30 分钟前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
剑神一笑33 分钟前
Linux killall 命令详解:按进程名批量终止进程的原理与实践
linux·运维·chrome
雅菲奥朗43 分钟前
企业级 AI 自动化|OpenClaw 龙虾实战与认证
运维·人工智能·自动化·openclaw
来杯@Java1 小时前
图书管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·mybatis·课程设计
卷毛的技术笔记2 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥2 小时前
匿名函数 lambda + 高阶函数
java·python·算法
東雪木2 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试