【问题标题】:how to get output of a running nohup process if nohup.out gets deleted如果 nohup.out 被删除,如何获取正在运行的 nohup 进程的输出
【发布时间】:2015-04-25 20:16:05
【问题描述】:

我的 FreeBSD 8.4 机器上运行了一个 nohup 进程。最初我正在查看通过

输出的 nohup 控制台消息
tail -f nohup.out

但我不小心删除了 nohup.out 文件。我现在如何访问控制台消息?

【问题讨论】:

    标签: freebsd nohup


    【解决方案1】:

    其实很简单。

    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/1less那个文件less /proc/2919/fd/1

    【讨论】:

      猜你喜欢
      • 2023-01-10
      • 2012-05-11
      • 2017-09-02
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 2013-05-24
      • 2011-12-22
      相关资源
      最近更新 更多