代码之家  ›  专栏  ›  技术社区  ›  Jordan Wills

观察另一个进程的stdout

  •  7
  • Jordan Wills  · 技术社区  · 14 年前

    假设情景如下: 我正在连接到框A的一些硬件上运行一个测试脚本,我可以对其进行根访问。这个测试脚本需要最少的用户输入(每隔半小时左右翻转一个开关)。在测试过程中大约一个半小时,我意识到这个脚本需要很长的时间才能完成,达到八小时的调子。盒子A位于一个非常冷,声音很大的服务器室,一般来说,在身体上居住并没有那么有趣。B号包厢在我的办公室里,在那里我有一把舒适的椅子和无数的热口袋。我想用一些方法来监视框B中ssh会话中在框A上运行的进程的输出,这样我就知道什么时候可以切换开关,但我不想重新启动测试进程。如果我知道从测试开始要花这么长时间才能完成,那么我将把它的输出通过管道传输到一个日志文件,并从我的box b ssh会话中跟踪该文件。如果我知道在框A上运行的进程的PID,是否可以从另一个会话中观察该进程的stdout?

    当然,我可以在框A上运行VNC,然后从框B登录以查看输出,但这违背了这个假设的目的,即了解更多有关进程管道、stdout和输出在Linux环境中一般如何工作的信息。

    思想?

    2 回复  |  直到 14 年前
        2
  •  0
  •   SDGuero    14 年前

    你可能想退房 expect 它对于自动化这些交互非常有用。

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