【问题标题】:Reading the console output of a process through SSH, linux通过SSH、linux读取进程的控制台输出
【发布时间】:2015-03-25 08:42:28
【问题描述】:

我有一个在 Slackware 13.37 上运行的进程,它将数据输出到其终端窗口。是否可以在不终止/重新启动进程的情况下将此输出读取/重定向到 ssh 窗口/PuTTY?

【问题讨论】:

    标签: linux ssh console slackware


    【解决方案1】:

    您可以使用 shell 重定向或通过诸如 script 之类的程序来捕获输出——前提是您的程序是以“常规方式”启动的。 (如果有适当的权限,可以通过特殊设备向其他终端写入)。

    假设您已经知道重定向输出,例如,

    foo >bar
    

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

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

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

    How to open process again in linux terminal? 中所述,可以使用strace 附加到正在运行的进程,给定它的进程ID。使用-e 中描述的-e 选项,您可以提取write 调用。

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

    【讨论】:

    • 谢谢。我忘了提到我无法终止/重新启动该进程,因为这会中断许多正在运行的服务。
    • 我更多的是考虑过滤 strace 日志以进行写入系统调用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多