在 Debian(以及其它 Linux 发行版)上,nohup 产生的日志文件变得很大,通常是下面几类原因造成的,并不奇怪:
nohup command > nohup.out 会把标准输出 + 标准错误都写进日志。
如果你的程序:
那么 nohup.out 会迅速增长。
示例:
nohup python app.py &
如果 app.py 每秒打印一次,一天就是 86400 行。
nohup.out 默认不会自动切割。
对比:
systemd / rsyslog:有 logrotatenohup.out:一直追加,只会越来越大很多人写的是:
nohup command > nohup.out 2>&1 &
这样:
全部进同一个文件,体积翻倍很常见。
比如:
程序没挂,但错误日志疯狂刷屏。
nohup 但不是“正确”的运维方式nohup 只是“忽略挂断信号”,不是日志管理工具。
长期运行的服务,更推荐:
systemdsupervisortmux / screen + 日志轮转例如:
这类日志会异常庞大。
ls -lh nohup.out
wc -l nohup.out
tail -n 100 nohup.out
看是:
nohup command >> app.log 2>&1 &
配合 logrotate。
/etc/logrotate.d/myapp:
/root/nohup.out {
size 100M
rotate 5
copytruncate
missingok
}
[Service]
ExecStart=/path/app
StandardOutput=append:/var/log/app.log
StandardError=append:/var/log/app.err
nohup 日志大,不是 nohup 的问题,而是“没有日志管理”的问题。
如果你愿意,可以把: