通过 SSH 读取进程的控制台输出,linux

Reading the console output of a process through SSH, linux

我在 Slackware 13.37 上有一个进程 运行,它将数据输出到它的终端 window。是否可以 read/redirect 此输出到 ssh window/PuTTY 而无需 terminating/restarting 进程?

您可以使用 shell 重定向或通过 script 之类的程序捕获输出——前提是您的程序已启动 "in the usual way"。 (如果有适当的权限,可以通过特殊设备写入其他终端)。

假设您已经了解重定向输出,例如,

foo >bar

但有一些情况,例如,一个 GUI 程序继续写入终端。

无需担心通过重定向输出来干扰程序,我会 运行 script 并在 script 启动的 shell 内启动程序。然后从 shell 写入的任何内容都将转到 typescript 文件(默认情况下)。

另一方面,启动 终端 window may/may 的 GUI 程序不可配置为允许使用可以捕获的启动脚本自定义它们输出。

, it is possible to attach to a running process with strace, given its process-ID. Using the -e option as described in 7 Strace Examples to Debug the Execution of a Program in Linux 中所述,您可以只提取 write 个调用。

请记住 strace 写入的非打印字符将转换为可打印文本,并且 strace 显示函数参数达到固定限制(您可以使用 -s 选项)。 strace 的输出可以被重定向(并且不需要 运行 在与原始进程相同的终端上)。