/proc/$(PID)/fd/$(NUM)とは……
PIDに繋がってるI/Oに対し文字列を流し込む超絶技です。
0は標準入力、1は標準出力、2は標準エラー。3以降は設定していれば別途使えます。
実際のところ
標準入力から文字を受け取って処理、終了するsort.rbというスクリプトがあったとします。
これを、こんな感じで呼び出します。
$ cat | ruby sort.rb &
catは何にも引数をつけなければユーザからの入力待ちになりますね。
……普通は。
ここで、別のシェル画面なり
データが格納されたsample.pktをcatなりで呼び出し、表題のコマンドで使ってあげると……
$ cat sample.pkt > /proc/$(pidof cat)/fd/1
ruby.rbが所定の処理を行ってくれます。
しかも、rubyに繋がったcatは停止しないので引き続き処理をぶっこむ事が可能です。
catを停止したい場合は、
$ kill -9 $(pidof cat)
てな感じで別途けしてあげるか、受信待機中の画面でエンターを叩けば停止します。