在 Debian 上“启用 Java 服务”通常有两种常见场景:
下面重点说明 用 systemd 在 Debian 上启用 Java 服务 的完整做法。
sudo apt update
sudo apt install default-jdk
验证:
java -version
假设你有一个可运行 jar 包:
/opt/myapp/myapp.jar
测试能否手动运行:
java -jar /opt/myapp/myapp.jar
sudo nano /etc/systemd/system/myapp.service
示例内容(按实际情况修改):
[Unit]
Description=My Java Application
After=network.target
[Service]
Type=simple
User=myapp
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -jar /opt/myapp/myapp.jar
SuccessExitStatus=143
Restart=on-failure
[Install]
WantedBy=multi-user.target
说明:
User:建议用非 root 用户Restart:服务崩溃自动重启SuccessExitStatus=143:兼容 Spring Boot 停止信号sudo useradd -r -s /bin/false myapp
sudo chown -R myapp:myapp /opt/myapp
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
systemctl status myapp
journalctl -u myapp -f
sudo reboot
systemctl status myapp
查看 Java 路径:
which java
或在 service 中写绝对路径:
ExecStart=/usr/lib/jvm/java-17-openjdk-amd64/bin/java -jar ...
ExecStart=/usr/bin/java -Xms512m -Xmx1g -jar /opt/myapp/myapp.jar
ExecStart=/usr/bin/java -jar /opt/myapp/myapp.jar --spring.config.location=/opt/myapp/application.yml
Spring Boot 可直接构建为 可执行 jar,上述方式完全适用。
如果你愿意,可以告诉我:
我可以给你一份可直接用的 service 文件。