转储进程的stdin和stdout

Modified on: Sat, 30 Jun 2018 09:25:30 +0800

我有两个过程,让我们说父母和孩子。 Parent启动Child并通过child的stdin和stdout与它通信。

Parent <-> Child

这些过程使用文本协议,我需要对其进行调查。我想创建一个bash脚本,它将由Parent而不是child启动。此脚本将启动Child,另外还会将stdin和stdout流转储到日志文件中。

Parent <-> MyProcess <-> Child
            |
            v
          log.txt

在bash中有没有办法做我需要或做的事情我需要使用C?

最佳答案

最简单的方法是使用tee将输入转储到子输出并从子输出到两个单独的文件,如下所示:

#!/bin/bash tee in.log | child | tee out.log

您可以使用tee-a参数(追加)将两个日志写入同一个文件,但我不是很确定他们是否会以正确的顺序交错或者只是一个接一个地写:

#!/bin/bash tee -a both.log | child | tee -a both.log

作者:n.st

相关问答

添加新评论