我有一个在后台运行的进程(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
Run Code Online (Sandbox Code Playgroud)
http://etbe.coker.com.au/2008/02/27/redirecting-output-from-a-running-process/