在 CentOS 下使用 nohup 启动程序时,日志定位主要看 nohup 默认行为 和 你有没有手动指定日志文件。下面按常见情况说明。
如果你是这样启动的:
nohup java -jar app.jar &
那么:
nohup.out
$HOME/nohup.out
ls -l nohup.out
或全局查找:
find / -name nohup.out 2>/dev/null
nohup java -jar app.jar > app.log 2>&1 &
日志位置:
app.log # 当前目录
nohup ./start.sh > run.log 2>&1 &
含义:
> run.log:标准输出2>&1:错误输出也写入同一文件ps -ef | grep app.jar
lsof -p PID
重点关注:
cwd -> 当前工作目录
txt -> 程序
1w -> stdout
2w -> stderr
示例:
lsof -p 12345 | grep log
tail -f nohup.out
或:
tail -f app.log
find . -name "*.log"
ls -l /proc/PID/fd
rm nohup.out
⚠️ 注意:正在运行的程序仍持有文件句柄,磁盘空间不会立刻释放。
nohup java -jar app.jar \
> /data/logs/app/app.log 2>&1 &
或:
nohup java -jar app.jar >> /data/logs/app/app.log 2>&1 &
如果你愿意,可以把你的 启动命令 或 程序类型(Java / Python / Shell) 发出来,我可以帮你精确判断日志在哪。