我知道如何将标准输出重定向到文件,但是否可以将标准输出重定向到进程(Linux 环境)?
例如,如果我通过“~^Z”将一个活动的 SSH 会话移到后台,有没有办法在我的本地主机上启动另一个程序并将其标准输出重定向到 SSH 会话?
谢谢!
有时像
echo "something" > /proc/pid-of-process/fd/0
工作,但如果他们链接到伪终端,它不会。
所以,这是做你想做的事的一种方法。
mkfifo mypipe
)使用 tail 从管道中读取数据并将其传递给 SSH 进程,例如:
tail -f mypipe | ssh -t -t user@somehost.com
将您想要进入 ssh 会话的任何内容发送到命名管道,例如:
echo "ls -l" > mypipe
因此,如果您需要从另一个程序中传输内容,您只需这样做
./my-program > /path/to/mypipe
你完成了。
一些注意事项:
-f
选项 totail
是防止 SSH 进程在管道为空时接收 EOF 所必需的。还有其他方法可以防止管道关闭,但我认为这是最简单的方法。-t -t
选项,否则它会抱怨,因为在您的情况下正在传输标准输入。ssh