我有一个在Slackware 13.37上运行的进程,它将数据输出到它的终端窗口。是否可以在不终止/重新启动进程的情况下将此输出读取/重定向到ssh窗口/ PuTTY?
答案 0 :(得分:0)
您可以使用shell重定向或通过script
等程序捕获输出 - 前提是您的程序以常规方式启动""。 (如果有适当的权限,可以通过特殊设备写入其他终端。)
假设您已经知道重定向输出,例如,
foo >bar
但有一些情况,例如,继续写入终端的GUI程序。
不用担心通过重定向输出来干扰程序,我会运行script
并在script
启动的shell中启动程序。然后从该shell写入的任何内容都将转到typescript
文件(默认情况下)。
另一方面,启动终端窗口的GUI程序可能/可能无法配置,以允许使用可捕获输出的启动脚本自定义它们。
如How to open process again in linux terminal?中所述,可以使用strace附加到正在运行的进程,并提供其进程ID。使用7 Strace Examples to Debug the Execution of a Program in Linux中所述的-e
选项,您只需提取write
次来电。
请记住strace
写入中的非打印字符转换为可打印文本,strace
显示最多固定限制的函数参数(可以使用{{1}进行调整} 选项)。 -s
的输出可以重定向(不需要在与原始进程相同的终端上运行)。