linux centos中把jar包设置为开机自启动

创建service文件

CentOS系统中, /usr/lib/systemd/system/etc/systemd/system 目录均可用于存放Systemd服务单元文件,但它们的用途稍有不同:

  1. /usr/lib/systemd/system 目录:

    • 存放的是系统安装的软件包提供的服务单元文件。
    • 该目录下的服务单元文件属于系统级别的服务,由软件包的提供方提供和管理。
    • 在升级或重新安装软件包时,该目录中的服务单元文件可能会被更新或替换。
    • 避免直接修改该目录下的服务单元文件,以免被未来的软件包更新覆盖。
  2. /etc/systemd/system 目录:

    • 存放的是用户自定义的服务单元文件和覆盖系统级别的服务单元文件。
    • 该目录下的服务单元文件属于本地管理范畴,用于配置自定义的服务、覆盖系统服务的设置或提供自定义的配置。
    • 该目录下的服务单元文件不会受到软件包的更新影响,除非你手动进行更改。
    • 推荐将自定义的服务单元文件放置在该目录下。

总结来说,/usr/lib/systemd/system 目录是系统级别的服务单元文件存放位置,由软件包提供和管理。而 /etc/systemd/system 目录是用户级别的服务单元文件存放位置,可用于自定义服务以及覆盖系统服务的设置。

如果你需要创建自定义的服务单元文件,推荐将其放置在 /etc/systemd/system 目录下,并避免直接修改 /usr/lib/systemd/system 目录中的服务单元文件。

2:编辑文件内容

java 复制代码
[Unit]
Description=My JAR Service
After=network.target

[Service]
ExecStart=/usr/bin/java -jar /path/to/myjar.jar
WorkingDirectory=/path/to
SuccessExitStatus=143
Restart=always
User=your_username

[Install]
WantedBy=multi-user.target
  • Description:描述你的服务。
  • After:指定启动服务的前置条件,这里使用 network.target 表示在网络启动之后再启动服务。
  • ExecStart:指定要运行的Jar包的命令。/usr/jdk/bin/java -jar 运行jar包的路径
  • (不用nohup命令也不用&)
  • WorkingDirectory:指定运行Jar包的工作目录。
  • SuccessExitStatus:指定成功退出的状态码。这里设置为143,表示使用 systemctl stop 命令终止服务时不会记录为错误。
  • Restart:指定当服务意外退出时是否自动重启。这里设置为always表示总是重启。
  • User:指定服务运行的用户。root

启动服务

复制代码
systemctl start myjar.service

设置为开机自启

复制代码
systemctl enable myjar.service

启动服务

复制代码
systemctl start myjar.service

停止服务

复制代码
systemctl stop myjar.service

重启服务

复制代码
systemctl restart myjar.service

查看运行状态

复制代码
systemctl status myjar.service

如果启动失败注意运行环境

更改service配置之后需要运行以下命令才会生效

复制代码
sudo systemctl daemon-reload
相关推荐
前端开发张小七11 分钟前
Java 学习笔记 · 第三课:多线程与并发编程(线程、同步、死锁、Lock、乐观锁与悲观锁)
java·后端·程序员
花生了什么事o42 分钟前
JVM 垃圾回收:对象如何被判定和回收
java·jvm
evans在进步1 小时前
HashMap 为什么线程不安全?ConcurrentHashMap 如何解决?
java·spring boot·spring
我命由我123451 小时前
匈牙利命名法
java·服务器·后端·学习·java-ee·kotlin·学习方法
闲猫1 小时前
LangChain / Integrations / Integrations by component / Tool
java·数据库·langchain
小田的博客1 小时前
SAP MM 供应商银行主数据更新报错!message R1228!
android·java·服务器
牢姐与蒯1 小时前
Linux基本指令及知识点(二)
linux·运维·服务器
小玮看世界2 小时前
[Python]从“脏”数据到优雅实现:一个IoT滑动窗口最大值问题的测试驱动优化实录
linux·前端·python
范什么特西2 小时前
知识总结03
java