在 Debian(以及大多数 Linux 发行版)里,nohup 本身并不会“吞掉”日志,日志不写通常是因为重定向方式、程序缓冲、shell 退出方式或路径问题导致的。下面按最常见原因逐一说明。
nohup 默认会:
SIGHUPnohup.out(仅当未手动重定向时)nohup python app.py &
如果 app.py:
sys.stderr就可能出现“没日志”。
nohup python app.py > app.log 2>&1 &
或分开:
nohup python app.py > app.out 2> app.err &
ps 能看到进程python -u app.py
或
PYTHONUNBUFFERED=1 python app.py
在代码里定期 flush()
cd /tmp
nohup ./app &
nohup.out 会写在 当前目录
你可能在别的地方找日志。
ls -l nohup.out
pwd
有时:
nohup 仍生成空日志cat nohup.out
或
tail -f app.log
即使 nohup 也存在例外:
zsh)行为不同setsid python app.py > app.log 2>&1 &
或
disown
df -h
touch nohup.out
不要依赖 nohup,用:
systemd servicescreen / tmux[Service]
ExecStart=/usr/bin/python /opt/app.py
StandardOutput=append:/var/log/app.log
StandardError=append:/var/log/app.err
> log 2>&1如果你愿意,可以把:
nohup.out 或日志内容发出来,我可以直接帮你定位是哪一种原因。