温馨提示×

centos如何开机启java

小樊
46
2026-09-26 23:52:46
栏目: 编程语言

在 CentOS 上实现 Java 程序开机自启动,常见有几种方式,下面按推荐程度给你讲。


一、推荐方式:systemd(CentOS 7+)

CentOS 7/8/Stream 都使用 systemd,这是最标准的方式。

1️⃣ 准备你的 Java 启动脚本

例如:/opt/app/start.sh

#!/bin/bash
cd /opt/app
/usr/java/jdk1.8.0_201/bin/java -jar myapp.jar >> /opt/app/app.log 2>&1

赋权:

chmod +x /opt/app/start.sh

2️⃣ 创建 systemd 服务

vi /etc/systemd/system/myapp.service

内容示例:

[Unit]
Description=My Java App
After=network.target

[Service]
Type=simple
User=root
ExecStart=/opt/app/start.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

3️⃣ 设置开机启动

systemctl daemon-reload
systemctl enable myapp
systemctl start myapp

查看状态:

systemctl status myapp

✅ 重启服务器会自动启动 Java 程序


二、老方式:rc.local(不推荐但简单)

适合临时测试。

vi /etc/rc.d/rc.local

添加:

/usr/java/jdk1.8.0_201/bin/java -jar /opt/app/myapp.jar &

赋权:

chmod +x /etc/rc.d/rc.local

⚠️ CentOS 7 以后 rc.local 默认不执行,必须确保可执行。


三、使用 nohup + 自启动(不推荐生产)

nohup java -jar /opt/app/myapp.jar &

然后加到 rc.local 或 systemd


四、常见坑提醒

✅ Java 要用 绝对路径
✅ 程序依赖目录要 cd 进去
✅ 日志必须重定向,不然开机可能失败
✅ 生产环境建议用 systemd


如果你愿意,可以告诉我:

  • CentOS 版本(6 / 7 / 8 / Stream)
  • Java 版本
  • 是 jar 还是 tomcat

我可以直接帮你写一份可用的启动文件。

0 踩