nohup 默认会把输出写到 nohup.out,时间一长很容易变得非常大。常见处理方式如下:
nohup your_command > app.log 2>&1 &
如果日志不重要:
nohup your_command > /dev/null 2>&1 &
假设日志是 app.log:
sudo vim /etc/logrotate.d/app
内容示例:
/path/to/app.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
说明:
copytruncate:不重启进程直接截断日志(适合 nohup)rotate 7:保留 7 份compress:压缩旧日志: > nohup.out
# 或
truncate -s 0 nohup.out
⚠️ 不要直接 rm nohup.out,否则进程可能继续写丢失的文件描述符。
例如每天凌晨清空:
0 0 * * * truncate -s 0 /path/to/nohup.out
systemd 管理进程(自带日志轮转)supervisor如果你愿意,可以告诉我:
我可以帮你写一份可直接用的配置。