問題タブ [mkfifo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
shell - UNIX をプルしながらファイルと zip をプルする
nzsql を使用して netezza サーバーからファイルを生成しています。要件の次の部分は、ファイルを圧縮して別のボックス (2 番目の UNIX ボックス) に移動することです。最初のボックスに座ってこれを達成できます(最初のボックスに座って、最初にgzipを実行し、次にscpを使用してファイルを移動します)。しかし、私の質問は、これを 2 番目のボックスから直接実行できるかどうかです。最初のボックスには nzsql によって生成されるファイルがあり、2 番目のボックスにはそのファイルがプルされ、プル中に圧縮されます (mkfifo を使用するか、その他の手段を使用)。最初のボックスでは、zip ファイルを作成したり、常駐させたりしたくありません。これを達成する方法を教えてください。
named-pipes - 名前付きパイプを使用すると端末プロンプトが消える
プロジェクトで名前付きパイプを使用しようとしています。ターミナル A とターミナル B の 2 つのターミナルを開いています。
ターミナル A で、次のコマンドを発行しました。
mkfifo myFifo && tail -f myFifo | csh -s
ただし、プロンプトが消え、一部のコマンドがターミナル A に反映されないため、標準出力が別の場所にリダイレクトされているようです。
たとえば、ターミナル BI でecho "python" > myFifo
, thenを発行して Python セッションを開始するecho "print 'Hello, World'" > myFifo
と、ターミナル A に Hello, World が表示されません。
ただし、echo ls > myFifo
ターミナル B 内で発行するとls
、ターミナル Aからの正しい出力が表示されます。
出力が表示される場合と表示されない場合がある理由を知っている人はいますか?
CentOS 6.6で実行しています
ありがとう、エリプ
windows - fifo ファイル Windows の例
Linux mkfifo に相当する Windows があるかどうか疑問に思っています。同等とは、 st_mode S_IFIFOを使用してファイルを作成する方法を意味します。回答ありがとうございます。
c - setuid プログラムのパイプ アクセス権
manager
GNU / Linux (Ubuntu 14.04) で実行され、1 つのプロセスと複数のプロセスで構成されるソフトウェア (私は作成者ではありません) を拡張していworker
ます。マネージャーは、構成ファイルで指定できるコマンド ラインを使用してワーカーを開始できます。
ワーカーを開始した後、マネージャーはパイプを使用してワーカーと通信します。manager-user
セキュリティ上の理由から、ワーカーをマネージャーとは別のユーザーで実行できるようにすることにしました (ワーカーをおよび と呼びましょうworker-user
)。su
これは、ユーザーを切り替えて新しいワーカーを開始する小さなラッパー スクリプトを作成することによって実現されます。この後、マネージャーはパイプを介してワーカー プロセスと通信できます。このアプローチは、何ヶ月もの間機能しています。
の代わりに、ビットを使用してワーカーを実行するsu
ことを検討しました。そのため、マネージャーが呼び出してワーカーを開始できるラッパーをsetuid
作成しました。C
が所有するようにラッパーを構成するmanager-user
と、ワーカーは正しく開始されます (もちろん、間違った権限で)。ラッパーを所有するように構成し、ビットworker-user
を設定するとsetuid
、ワーカーは開始されますが、マネージャーに接続できないため終了します。
だから私の質問は:実行可能ファイルをsetuid
実行すると、親プロセスと子プロセスの両方によって作成されたパイプのアクセス許可にどのように影響しますか? setuid-wrapper を介して開始されたワーカー プロセスに、マネージャーのパイプを開く権限がない (またはその逆の) 可能性はありますか? これが当てはまる場合、これらのアクセス許可をどのように変更できますか?
私は使用経験がほとんどないsetuid
ため、情報/説明は大歓迎です。
linux - Linux ノンブロッキング FIFO write() の一貫性のないタイミング
mkfifo()
FIFOを介して同じホスト上で実行されている別のアプリケーションと通信するリアルタイムの Linux ユーザー アプリケーションがあります。このアプリケーションは 4 つの pthread で構成され、そのうちの 1 つが FIFO を作成して開きます。FIFO はノンブロッキング (O_NONBLOCK) モードで開かれます。
write()
通常、pthread から出力 FIFO への転送には約 1 秒かかります。8 マイクロ秒 - これは、約 2500 バイトまでのメッセージ用です。私たちにとっての問題は、時折、しかし定期的に、それの 10 倍の時間がかかり、ごくまれにミリ秒かかることです。この場合、メッセージの長さは通常よりも長くはありません。
おそらく、これを引き起こす「ボンネットの下」で何かが起こっているのでしょう。それを回避する方法はありますか?write()
非常に長い時間が表示されない限り、平均時間が多少増加しても問題ありません。
コメント/提案はありがたく受け取りました。
linux - R tcpdump 出力を fifo に設定してから、変数または接続に設定します
このコマンドのライブ ストリーミング出力を、while ループで実行されている行ごとの変数/接続に保存するにはどうすればよいですか? 何かのようなもの:
また
readLines(con, n = -1) で "-1" 引数を使用して fifofile 全体をパージすると、一貫して接続が切断されているようです!?
named-pipes - GTKMM モニタリング I/O の例 100% の CPU 負荷
hereの Gtkmm Monitoring I/O example を試しています。fifo に何かが書き込まれると、CPU 負荷は 100% になります。
リンクの例に示されているコードは、テスト (コピー/貼り付け) に使用したコードです。コンパイルするために build.config.h ヘッダーのみを削除しました。
私はそれを使用してコンパイルしました:
コードを Gtkmm 2 に変換した後も動作は同じで、FIFO に何かが書き込まれた後でも CPU 負荷は 100% になります。
私の質問は、これはバグですか、既知の問題ですか、それとも問題ではないのでしょうか?
bash - fifo ファイルから read -n を実行するとシェルでデータが失われる理由
最初に fifo を作成します
それから私はそれに何かをエコーします
別のターミナルを開き、それに sth も追加します
もちろん、2つはすべてブロックされているので、fifofileから読み取ります
全部解放されて1体しか手に入らず、もう1体は行方不明…
私の質問は、なぜそれが起こったのか、データを失うことなく fifo ファイルからコンテンツを 1 つずつ取得するにはどうすればよいですか?
どうも