如果 nohup.out 被删除了,如何获取正在运行的 nohup 进程的输出结果?

3

我在我的FreeBSD 8.4盒子上运行了一个nohup进程。最初,我是通过

命令查看nohup控制台消息输出的。
tail -f nohup.out

但是我不小心删除了nohup.out文件。现在我该怎么访问控制台消息?
1个回答

7

其实很简单。

  1. 首先回到您的命令历史记录中,找到您用于启动该过程的命令。例如,nohup my-long-process.sh &或者如果您记得,直接进入下一步。
  2. 现在找到您的进程的进程ID。在本例中,使用命令ps -ef | grep my-long-process
  3. 您将看到PID(进程ID)和PPID(父进程ID)在您启动进程的用户的名称之后。您想要的PID是左边的数字。在本例中,假设它是2919
  4. 由于进程仍在运行,因此您会发现一个名为/proc/2919/fd的目录。这里的2919是您从上面的ps命令中获得的PID。
  5. 如果使用ls -l /proc/2919/fd列出该目录,您将看到一个或两个名为12等的链接,它们指向您的deleted文件。事实上,目标文件的名称将为/path/to/your/nohup.out (deleted)
  6. 您现在可以使用tail -f tail -f /proc/2919/fd/1

哦,如果您想查看错过的内容,可以使用less /proc/2919/fd/1查看该文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接