nohup 默认会把标准输出和标准错误都追加写到 nohup.out,所以日志会一直变大。常见解决办法如下,按推荐程度排序:
nohup java -jar app.jar > app.log 2>&1 &
nohup java -jar app.jar > app_$(date +%Y%m%d).log 2>&1 &
logrotate(最规范)示例 /etc/logrotate.d/app:
/path/app.log {
daily
rotate 7
size 100M
missingok
notifempty
copytruncate
}
✅ 优点:
nohup java -jar app.jar > /dev/null 2>&1 &
⚠️ 出问题无法排查
[Service]
StandardOutput=append:/var/log/app.log
StandardError=append:/var/log/app.log
配合 logrotate 管理
rm nohup.out会导致磁盘空间不释放
: > nohup.out
# 或
truncate -s 0 nohup.out
| 场景 | 建议 |
|---|---|
| 临时测试 | > /dev/null |
| 普通服务 | 重定向 + logrotate |
| 生产环境 | systemd + logrotate |
| 已运行程序 | truncate 清理 |
如果你愿意,可以把**启动命令或运行环境(Java / Python / Node)**发我,我可以给你一个最合适的配置方案。