温馨提示×

centos如何后台跑java

小樊
38
2026-09-08 19:00:58
栏目: 编程语言

在 CentOS 上让 Java 程序在后台运行,常见有以下几种方式,按使用场景从简单到规范说明:


一、最简单:&(适合临时运行)

java -jar app.jar &
  • 程序在后台运行
  • 关闭终端可能被杀掉(取决于是否 nohup
  • 查看进程:
ps -ef | grep java

⚠️ 不推荐长期运行


二、推荐:nohup + &(最常用)

nohup java -jar app.jar > app.log 2>&1 &

说明:

  • nohup:终端关闭也不退出
  • > app.log:日志输出到文件
  • 2>&1:错误日志也写进去
  • &:后台运行

查看:

tail -f app.log

停止:

ps -ef | grep app.jar
kill -9 PID

最常用方式


三、使用 setsid(完全脱离终端)

setsid java -jar app.jar > app.log 2>&1
  • 完全脱离会话
  • nohup 更彻底

四、生产推荐:systemd 服务(最规范)

1. 创建服务文件

vi /etc/systemd/system/app.service

内容示例:

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

[Service]
User=root
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar /opt/app/app.jar
SuccessExitStatus=143
Restart=always

[Install]
WantedBy=multi-user.target

2. 启动服务

systemctl daemon-reload
systemctl start app
systemctl enable app

3. 查看状态

systemctl status app
journalctl -u app -f

生产环境最佳实践


五、进阶(可选)

  • screen / tmux:可恢复终端
  • supervisor:进程管理工具
  • docker:容器化运行

总结建议

场景 推荐方式
临时测试 java -jar &
一般后台 nohup java -jar &
生产环境 systemd

如果你愿意,我可以帮你写一份完整的 systemd 配置优化 JVM 参数

0