管道输入到暂停的流程

时间:2015-12-08 19:41:57

标签: linux command-line piping suspend

我正在尝试将一些输入(如标准输入,而不是命令行参数)从一个文件传输到linux机器上的挂起进程,例如,

cat file > fg

然而,我似乎找不到合适的命令。到目前为止我已经尝试了

file > fg
file | fg
file - | fg
fg < file
fg < cat file

我知道在启动新流程时,其中至少有一个会起作用,但我特别需要在挂起的流程中执行此操作。是否有专门针对我正在寻找的命令序列?

或者,我也可以使用python -c print输入输入,但我也没有成功。

1 个答案:

答案 0 :(得分:2)

我相信这是不可能做到的。当流程暂停时,它已经打开了stdinstdoutstderr个文件描述符。对于您想要的内容,bash需要某种方式强制关闭已挂起进程的stdin,然后使用新输入fd重新打开它。如果有任何方法可以执行此操作而不涉及一些非常棘手的代码(例如,在挂起的进程内创建一个线程,挂起主线程,使用新线程关闭并重新打开{我会感到非常惊讶) {1}}文件描述符)。我不希望这样的过程在任何规律性的情况下都能正确完成。

但是,我可能也错了。