名前付きパイプ/FIFOを生成し、読み込み中にコマンドを実行します。

名前付きパイプ/FIFOを生成し、読み込み中にコマンドを実行します。

ローカルファイルからhttp URLの内容のみを読み取るプロセスを提供したいと思います。プロセスは、現在の作業ディレクトリ内の特定のファイルを読み取り、特定のイベントが発生したときにそれらを読み取るようにハードコーディングされたデーモンです。

ファイルの読み取りをトリガーするイベントを制御することはできません。カールスクリプトを介してデータを常にファイルにダンプするのではなく、ほぼリアルタイムのデータを提供したいと思います。

私が考えるのにうまくいくと思うのは、コマンドを読むたびにコマンドを実行するfifoです。次に、netcatまたはカールに接続してURL(xmlデータ)の内容を取得します。可能ですか?

ベストアンサー1

通常のファイルシステムから読み取るためにパイプからプロセスを開始することは不可能です。しかし、あなたのニーズに合う他の方法があります。

コンテンツ生成プログラムをループで実行できます。 FIFO が書き込み用に開かれるたびに、リーダーが表示されるまでブロックされます。

while true; do
  generate-content >fifo
done

別の方法はヒューズ必要に応じてファイルシステムを作成する - リーダーに返されるデータは、通常のプログラムであるファイルシステムドライバによって生成され、必要に応じて動作するように作成できます。 FUSEファイルシステムドライバを構築するには多くの作業が必要なのでを探すこれは正確に必要な作業を行い、少し過剰になる可能性があります。役に立つかもしれないいくつかのファイルシステムは次のとおりです。

  • スクリプトファイルシステム- 説明によると、「ローカルファイルシステムをコピーしますが、結果を実行して「スクリプト」で検出されたすべてのファイルを置き換えます。」が必要です。私はそれを使用したことがありません。
  • HTTPFS- ファイルを読み取るとネットワークダウンロードがトリガされ、それをローカルホストに接続して小さなWebサーバーを実行します。軽量またはthttpd動的コンテンツを提供するためにCGIまたは同様の方法をサポートしています。必要なデータがWebサーバーからすでにダウンロードされている場合は、HTTPFSを指すだけです。

おすすめ記事