3
我知道如何到標準輸出重定向到一個文件,但有可能到標準輸出重定向到一個進程(Linux環境)?stdout重定向到正在運行的進程
例如,如果我將積極SSH會話通過「〜^ Z」的背景下,是有辦法,然後開始我的本地主機上的其他程序和標準輸出重定向到SSH會話?
謝謝!
我知道如何到標準輸出重定向到一個文件,但有可能到標準輸出重定向到一個進程(Linux環境)?stdout重定向到正在運行的進程
例如,如果我將積極SSH會話通過「〜^ Z」的背景下,是有辦法,然後開始我的本地主機上的其他程序和標準輸出重定向到SSH會話?
謝謝!
有時像
echo "something" > /proc/pid-of-process/fd/0
作品一招,但如果他們連接到虛擬終端,它不會。
所以,這裏是做你想要的東西的一種方式。
mkfifo mypipe
)使用尾從管道中讀取並傳遞到SSH過程,如:
tail -f mypipe | ssh -t -t [email protected]
發送任何你想進入SSH會話到命名管道,如:
echo "ls -l" > mypipe
所以,如果你從另一個需要管的東西程序,你只是做
./my-program > /path/to/mypipe
大功告成。
一些注意事項:
-f
選項tail
對於防止SSH進程在管道爲空時接收EOF是必要的。還有其他方法可以阻止管道關閉,但這在我看來是最簡單的。-t -t
選項ssh
強制tty分配,否則它會抱怨因爲標準輸入您的情況下管道。
我可以想到一些奇怪的遊戲,我嘗試使用命名管道玩 - 但它不會很漂亮。 –
這是準無關,但我不能推薦這篇文章足夠http://www.linusakesson.net/programming/tty/index.php。它解釋了爲什麼下面命名的管道解決方案可行 – nsfyn55