在 CentOS 下用 nohup 启动程序时,默认会把输出重定向到当前目录的 nohup.out 文件。如果你“找不到了”,可以按下面几种情况排查和恢复。
find / -name nohup.out 2>/dev/null
或只在常见目录找:
find ~ -name nohup.out
find /opt /home /usr/local -name nohup.out
ps -ef | grep 你的程序名
假设 PID 是 12345:
ls -l /proc/12345/cwd
这就是 nohup.out 可能存在的目录。
比如你曾经执行过:
nohup xxx > app.log 2>&1 &
那就找这个文件:
find / -name app.log 2>/dev/null
即使文件被 rm 删了,只要进程没退出,日志还能找回!
ls -l /proc/进程PID/fd/
你会看到类似:
1 -> /root/nohup.out (deleted)
直接拷贝:
cp /proc/进程PID/fd/1 /root/nohup_back.log
⚠️ 不要重启进程,否则日志永久丢失
如果你执行过:
> nohup.out
或 logrotate 处理了它:
✅ 已写入内容无法恢复
✅ 但未来日志还会继续写(文件 inode 不变)
nohup java -jar app.jar > /var/log/app.log 2>&1 &
/var/log/app.log {
size 100M
rotate 5
compress
copytruncate
}
find / -name nohup.outls -l /proc/PID/cwdls -l /proc/PID/fdrm 过但进程还在如果你愿意,可以把:
ps -ef | grep 程序ls -l /proc/PID/fd发出来,我可以帮你精确判断能不能找回。