我开始了一项非常长时间运行的工作(预计需要 6 天才能完成),并且想查看其输出,所以我这样做了:
$ nohup ./thejob.sh > out.txt
当我需要查看工作进度时,我tail - f
会归档。
但该out.txt
文件增长太多,我删除了该文件并重新创建了它。
$ rm out.txt
$ touch out.txt
此后,没有输出发送到文件。我认为该作业失去了与文件的绑定。我可以通过使用看到作业正在运行top
,但我再也看不到它的进度了。
有什么办法可以再次看到吗?
答案1
旧文件还没有消失,如果您知道写入该文件的进程的 PID,则可以访问它。你可以去/proc/<pid>/fd
看看1
是哪一个stdout
但这也意味着您没有从尝试删除文件中回收任何空间。
此外,一旦进程退出,该文件将被删除。