時々実行中のプロセスの標準入力に書き込む

時々実行中のプロセスの標準入力に書き込む

時にはnetcat。その後、Netcatはそれを別のnetcatプロセス(マイコンピュータまたはローカルネットワーク)に送信しますが、今は最初のプロセスにのみ興味があります。

たとえば、キーを押すと、ユーザーはプロンプトに値を入力し、その値をプロセスに送信します。


値が与えられると$textnetcatそれを受け取り、通常の標準入力のように処理するにはどうすれば送信できますか?


次のことを試しましたが、そのうち何も機能しません。

  • echo $text >> /proc/`pidof netcat`/fd/0。これは端末
    に書き込まれますが、netcatはそれを受信しません。$text(によるとこの問題)

    • 私も次のようにnetcatを始めました。そしてプロセスをcat | netcat ...エコーし​​ます。cat
  • mkfifo pipe; netcat <mypipe
    mypipe今、別のnetcatプロセスが接続されたら、これまで私が送信したものを受け取ります。
    追加の書き込みはmypipe効果がありません。

    • また、別の結果でこれを試しましたcat mypipe | netcat ...
      。最初の書き込みはmypipe別のnetcatプロセスに送信されますが、2番目のecho 123 >mypipe試行は中止されます。プロンプトが表示されずに値を入力できますが、何も起こりません。

名前付きパイプについて学んでいるので、正しく使用できない可能性があります。
しかし、「フローファイル」などを探しています。言う私にとって、それは仕事に適したツールです。どのように)。

代替案への私の最初の試み(私はこれをしますサーバー障害)を使用する必要がありますが、screenこれが私の問題には過剰だと思います。

名前付きパイプの問題そんな気がするecho文字列の後にEOFを送信します。これにより、netcatパイプからの読み込みが停止されるため、メッセージを送信できなくなります(できますが、netcatはメッセージを読みません)。これが私を作る後でEOFを発生させることなく、プロセスの標準入力にデータをパイプします。しかし、提供されたソリューションを私の場合にどのように適用するのかわかりません。

私は可能なすべてのパイプ/猫/エコの組み合わせを扱ったと思いましたが、役に立たなかったので、残りはunix.seだけです:)

よろしくお願いします!

ベストアンサー1

おすすめ記事