パイプを使用して実行中のプロセスのstdinに書き込む


8

私はこの投稿と同様の状況 にありますが、答えがその質問にのみ関連しているように思われるため、私の状況で機能するように提供されたソリューションを取得できませんでした。

特に、何の目的なのか理解できなかった

cat my.fifo | nc remotehost.tld 10000

私の場合、実行中のプロセスがあり、入力を待機しています。名前付きパイプを使用してそのプロセスに入力を送信するにはどうすればよいですか?

echo 'h' > /proc/PID/fd/0「プロセス」ウィンドウに「h」と表示するだけで試しました。

回答:


13

を含む行を無視してください。ncこの質問のOPは、を使用してネットワーク経由でデータを転送するためにそれを使用したいと考えていますnc

それはあなたに残します:

mkfifo yourfifo
cat > yourfifo &
mypid=$!
yourprogram < yourfifo

今あなたはあなたのプログラムにデータを送ることができます

echo "Hello World" > yourfifo

完了したら、プログラムを終了し、コマンドkill $mypidを発行してダミープロセスを削除し、FIFOを開いたままrm yourfifoにし、名前付きパイプを削除します。


2
何しcat > yourfifo &てるの?
Alexander Mills
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.