我有一个在后台运行的进程(sh 脚本),我想知道是否可以在不中断它的情况下查看该进程的输出。
该进程由某个应用程序运行,否则我会将其附加到屏幕上供以后查看。这可能需要一个小时才能完成,我想确保它正常运行,没有错误。
最佳答案
在linux中已经有一个使用ptrace(2)的程序来做这个,retty:
如果您正在运行的程序已经附加到 tty,它会起作用,我不知道如果您在后台运行您的程序是否会起作用。
至少它可能会给出一些好的提示。 :)
您可能可以使用 ptrace(2)
从程序中检索退出代码,否则只需附加到使用 gdb -p <pid>
的进程, 当程序结束时它会被打印出来。
您还可以使用 gdb 操作文件描述符:
(gdb) p close(1)
$1 = 0
(gdb) p creat("/tmp/stdout", 0600)
$2 = 1
http://etbe.coker.com.au/2008/02/27/redirecting-output-from-a-running-process/
关于linux - 查看 linux 中已运行进程的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14184662/