【问题标题】:observing stdout of another process观察另一个进程的标准输出
【发布时间】:2011-03-25 20:55:38
【问题描述】:

这是假设场景: 我正在连接到盒子 A 的一些硬件上运行一个测试脚本,我有 root 访问权限。此测试脚本需要最少的用户输入(每半小时左右翻转一次开关)。在测试过程大约一个半小时后,我意识到这个脚本需要很长时间才能完成,大约需要八个小时。 Box A 位于一个非常寒冷、嘈杂的服务器机房中,通常占用它并没有那么有趣。 Box B 位于我的办公室,那里有一把漂亮舒适的椅子和无穷无尽的热口袋。我想要某种方法来监视从框 B 中的 ssh 会话在框 A 上运行的进程的输出,以便我知道何时触发开关,但我不想重新启动测试过程。如果我一开始就知道测试需要很长时间才能完成,我只会将其输出通过管道传输到一个日志文件,然后从我的 box B ssh 会话中跟踪该文件。如果我知道框 A 上运行的进程的 PID,是否可以从另一个会话中观察该进程的标准输出?

当然,我可以在盒子 A 上运行 vnc 并从盒子 B 登录以查看输出,但这违背了这个假设的目的,即了解更多关于如何处理管道、标准输出和Linux 环境下的一般工作输出。

想法?

【问题讨论】:

    标签: linux pipe stdout


    【解决方案1】:

    【讨论】:

    • 这正是我希望找到的!谢谢 - 我什至没有考虑使用 gdb 来劫持进程的文件描述符。
    【解决方案2】:

    您可能想查看expect 它对于自动化这些类型的交互很有用。

    您还可以将脚本的输出重定向到文件并从另一个 ssh 会话监视所述文件。我敢打赌,stackoverflow 上的聪明人也可以说出大约 6 种其他方法来做到这一点。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 2023-04-02
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      相关资源
      最近更新 更多