在 Debian 上启停 Java 服务,常见有 3 种方式:
1️⃣ 直接命令行启停(最简单)
2️⃣ 使用 systemd(推荐,生产环境)
3️⃣ 使用脚本 + service(老方式,较少用)
下面分别说明。
java -jar /opt/app/myapp.jar
后台运行:
nohup java -jar /opt/app/myapp.jar > /var/log/myapp.log 2>&1 &
# 查找进程
ps -ef | grep myapp.jar
# 杀掉进程
kill -9 <PID>
✅ 适合临时测试
❌ 不能开机自启、不方便管理
sudo vim /etc/systemd/system/myapp.service
内容示例:
[Unit]
Description=My Java Application
After=network.target
[Service]
User=appuser
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar /opt/app/myapp.jar
SuccessExitStatus=143
Restart=on-failure
[Install]
WantedBy=multi-user.target
⚠️ 确保
java路径正确
可用which java查看
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl stop myapp
sudo systemctl restart myapp
sudo systemctl status myapp
journalctl -u myapp -f
sudo systemctl enable myapp
sudo vim /etc/init.d/myapp
示例(简化):
#!/bin/bash
case "$1" in
start)
nohup java -jar /opt/app/myapp.jar > /var/log/myapp.log 2>&1 &
;;
stop)
pkill -f myapp.jar
;;
esac
chmod +x /etc/init.d/myapp
service myapp start
service myapp stop
⚠️ Debian 新版本已不推荐
which java
java -version
如未安装:
sudo apt update
sudo apt install default-jdk
update-alternatives --config java
| 场景 | 推荐方式 |
|---|---|
| 本地测试 | 命令行 |
| 生产环境 | ✅ systemd |
| 老系统 | init.d |
如果你愿意,可以告诉我:
我可以帮你 直接写一份可用的 systemd 配置。