tanascius Asked: 2010-03-23 12:00:35 +0800 CST2010-03-23 12:00:35 +0800 CST 2010-03-23 12:00:35 +0800 CST Linux进程管理 772 我在我的 ssh 控制台中启动了一个长时间运行的后台进程(ddwith )。/dev/urandom后来我不得不断开连接。当我再次登录时(这次是直接登录,没有 ssh),该进程似乎仍在运行。 我不确定发生了什么 - 我没有使用disown. 当我稍后登录时,该进程最初没有列出top,但过了一段时间它回收了很高的 CPU 百分比,正如我所料。所以我假设dd仍在运行。 现在,我想看看进展。我使用kill -USR1 <pid>但没有打印任何内容。有没有办法再次获得输出? linux console nohup process 4 个回答 Voted Best Answer kmarsh 2010-03-23T12:11:33+08:002010-03-23T12:11:33+08:00 重定向所有输出(stdout、stdin、stderr)可以解除子进程与父进程的关联。 您可以尝试使用 gdb 附加到该进程,键入“c”以继续,并在您从另一个控制台连接时观看该控制台。 gdb /bin/dd pid tanascius 2010-03-23T13:02:56+08:002010-03-23T13:02:56+08:00 感谢kmarsh的回答和这个 线程,我能够将丢失的输出(stderr)重定向到一个文件: gdb /bin/dd 2616 (gdb) p creat("/root/dd.stderr",0600) [Switching to Thread 0x7f651ece56e0 (LWP 2616)] $1 = 3 (gdb) p dup2(3,2) $2 = 2 (gdb) p close(3) $3 = 0 (gdb) q 运行后,kill -USR1 2616我可以 cat 我的新文件: 631820341060 bytes (632 GB) copied, 81603.1 s, 7.7 MB/s pQd 2010-03-23T12:05:23+08:002010-03-23T12:05:23+08:00 恐怕不是。但下次使用屏幕。谷歌教程或从这里开始。 Bill Weiss 2010-03-23T12:29:03+08:002010-03-23T12:29:03+08:00 您可以通过查看/proc/(pid of your dd/fd/1或来查看输出/proc/(pid)/fd/2。猫,然后用 USR1 击中它,看看你是否得到任何东西。
重定向所有输出(stdout、stdin、stderr)可以解除子进程与父进程的关联。
您可以尝试使用 gdb 附加到该进程,键入“c”以继续,并在您从另一个控制台连接时观看该控制台。
gdb /bin/dd pid
感谢kmarsh的回答和这个 线程,我能够将丢失的输出(stderr)重定向到一个文件:
运行后,
kill -USR1 2616
我可以 cat 我的新文件:恐怕不是。但下次使用屏幕。谷歌教程或从这里开始。
您可以通过查看
/proc/(pid of your dd/fd/1
或来查看输出/proc/(pid)/fd/2
。猫,然后用 USR1 击中它,看看你是否得到任何东西。