nohup 本身不一定会自动生成日志文件,很多“没生成日志”的情况其实是使用方式或环境导致的。常见原因有下面这些:
最常见原因。
nohup python app.py
这样标准输出并不会自动变成 nohup.out,取决于 shell 和终端状态。
✅ 正确写法:
nohup python app.py > nohup.out 2>&1 &
或:
nohup python app.py >> run.log 2>&1 &
nohup.out 默认生成在当前工作目录,不是你以为的地方。
检查方式:
pwd
ls -l nohup.out
如果你后来 cd 了目录,可能找不到。
如果程序启动即报错退出,nohup.out 可能:
检查进程:
ps -ef | grep app.py
或:
jobs
Python、Java 等常出现。
例如 Python:
python app.py
输出是缓冲的,不 flush 就看不到。
解决:
python -u app.py > log.txt 2>&1 &
或代码里:
print(x, flush=True)
在:
里,nohup 基本没用,日志由系统管理。
当前目录不可写时:
nohup: failed to open 'nohup.out'
日志不会生成。
解决:
nohup cmd > /tmp/log.txt 2>&1 &
程序:
那你自然看不到日志。
nohup your_command > app.log 2>&1 &
tail -f app.log
如果你愿意,可以把**你的命令 + 环境(Linux? Docker? Python?)**发出来,我可以直接帮你定位原因。