問題タブ [flock]

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.

0 投票する
1 に答える
168 参照

php - PHPを使用したApache RewriteLockの代替?

私のサーバーはPleskでCentOSを実行しているため、httpd.confを編集してRewritelockエントリを追加することは、私が理解しているオプションではありません。RewriteLock エントリも vhost.config で許可されていないため、ここで説明されている代替案を見て行き詰まっていると思います。

テストとして、このアプローチを使用して成功しています。これは、エントリが vhost.conf にあるため、わずかに変更されています。ファイルをロックする試みも追加しました。

hereで説明したように、どのプロセスも排他ロックを待機するように見えますが、どのようにテストするのが最善かわかりません。ご存知かもしれませんが、 flock() を使用すると、すべてのプロセスが待機し、この実行中のプログラムでリクエストがスクランブルされないことが保証されますか?

0 投票する
1 に答える
3023 参照

c - C プログラムとシェルスクリプトの間で flock を使用する方法

私はシェルスクリプトとacプログラムを持っています

C プログラムでは、関連するコード スニペットは次のとおりです。

taskAシェル スクリプトと C プログラムを同じホストで実行したいのですが、別の時間に交互に実行できることを願っていますがtaskB、flock に慣れていないため、アクセス許可の問題やファイルを開くのに失敗することがあります。

たとえば、C プログラムを実行して終了させて​​から再度実行すると、「ファイルを開くのに失敗しました」というメッセージが表示され、パーミッションは次のようになります。

スクリプトとコードを変更する方法 ありがとう!

0 投票する
3 に答える
824 参照

erlang - erlang のプロセス間ロック機構 (flock など)

Erlang には flock などのプロセス間 (つまり Linux または Windows プロセス) のロック機構がありますか?

使用方法は次のとおりです。

  • Erlang サーバーがリポジトリの提供を開始し、ファイル ロック (またはその他) を設定します。
  • 別の OS プロセス (別の Erlang サーバーまたはコマンドライン Erlang スクリプト) がリポジトリと対話する場合、ファイル ロックは競合の可能性について警告します。
0 投票する
1 に答える
2128 参照

c - 名前付きセマフォまたはフロックの方が優れているC linux

複数のプロセスで使用される共有メモリを作成しようとしています。MPIこれらのプロセスは、呼び出し ( MPI_Send、 )を使用して相互に通信しますMPI_Recv

この共有メモリへのアクセスを制御するメカニズムが必要です。MPI がそれを行うための機能を提供しているかどうかを確認するために、昨日質問を追加しました。MPI で作成されたプロセスの共有メモリ アクセス制御メカニズムですが、MPIではそのような規定はないようです。

したがって、named semaphoreまたはのいずれかを選択する必要がありますflock

名前付きセマフォの場合、いずれかのプロセスが を呼び出さずに突然停止した場合sem_cloe()、そのセマフォは常に残り、 から見ることができますll /dev/shm/。これにより、デッドロックが発生することがあります (同じコードを再度実行すると!)。このため、現在 flock を使用することを考えています。

flockがこのタイプの操作に最適かどうかを確認したいだけですか?

を使用することの欠点はありflockますか?

named semaphoreand以外にflockここで使用できるものはありますか?

LinuxでCを使用しています。

0 投票する
3 に答える
7528 参照

linux - Linux でロックされたファイルをアトミックに作成するにはどうすればよいですか?

シナリオ: ネット経由でファイルをフェッチする必要があるプロセスを多数実行しています。ファイルが既にダウンロードされている場合は、ディスクにキャッシュします。別のプロセスがファイルをダウンロードしている場合は、ダウンロードが完了するまでブロックします。

これを行う最も簡単な方法を見つけようとしています。明らかな方法は次のとおりです。

このシステムは、(一見) 競合状態なしで上記の目標を達成します。

残念ながら、open() などを使用して Linux でロックされたファイルを作成する方法に関するドキュメントは見つかりませんでした。作成ステップを次のように分割すると:

作成とロックの間に競合状態が存在するようになりました (非作成プロセスは、作成者がロックを取得する前にロックを取得します)。

ファイルごとに外部ロックファイル (例: filename + '.lock) を使用できることに気付きました。これは、ファイル名を作成する前に取得しますが、これは.. 洗練されていないと感じます (そして、実際に.lock サフィックス!)

とにかくアトミックに作成してロックする方法はありますか(Windowsが提供するように)、または外部ロックファイルメソッドは標準/必須のものですか?

0 投票する
1 に答える
2348 参照

php - Windows上のPHPで排他的アクセスのためにディレクトリをロックする方法は?

flock()メソッドを使用してディレクトリのアドバイザリ ロックを取得し、別のプロセスが同じディレクトリに同時にアクセスできないようにしています。ファイル ハンドルを操作するためflock()、最初にディレクトリのハンドルを開く必要があります。

ただし、これは Windows では機能しません。

fopen(.): ストリームを開けませんでした: 権限が拒否されました

Windows で同じことを行う方法はありますか、それともこのプラットフォームの制限ですか?