問題タブ [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.
php - PHPを使用したApache RewriteLockの代替?
私のサーバーはPleskでCentOSを実行しているため、httpd.confを編集してRewritelockエントリを追加することは、私が理解しているオプションではありません。RewriteLock エントリも vhost.config で許可されていないため、ここで説明されている代替案を見て行き詰まっていると思います。
テストとして、このアプローチを使用して成功しています。これは、エントリが vhost.conf にあるため、わずかに変更されています。ファイルをロックする試みも追加しました。
hereで説明したように、どのプロセスも排他ロックを待機するように見えますが、どのようにテストするのが最善かわかりません。ご存知かもしれませんが、 flock() を使用すると、すべてのプロセスが待機し、この実行中のプログラムでリクエストがスクランブルされないことが保証されますか?
c - C プログラムとシェルスクリプトの間で flock を使用する方法
私はシェルスクリプトとacプログラムを持っています
C プログラムでは、関連するコード スニペットは次のとおりです。
taskA
シェル スクリプトと C プログラムを同じホストで実行したいのですが、別の時間に交互に実行できることを願っていますがtaskB
、flock に慣れていないため、アクセス許可の問題やファイルを開くのに失敗することがあります。
たとえば、C プログラムを実行して終了させてから再度実行すると、「ファイルを開くのに失敗しました」というメッセージが表示され、パーミッションは次のようになります。
スクリプトとコードを変更する方法 ありがとう!
erlang - erlang のプロセス間ロック機構 (flock など)
Erlang には flock などのプロセス間 (つまり Linux または Windows プロセス) のロック機構がありますか?
使用方法は次のとおりです。
- Erlang サーバーがリポジトリの提供を開始し、ファイル ロック (またはその他) を設定します。
- 別の OS プロセス (別の Erlang サーバーまたはコマンドライン Erlang スクリプト) がリポジトリと対話する場合、ファイル ロックは競合の可能性について警告します。
c - 名前付きセマフォまたはフロックの方が優れているC linux
複数のプロセスで使用される共有メモリを作成しようとしています。MPI
これらのプロセスは、呼び出し ( MPI_Send
、 )を使用して相互に通信しますMPI_Recv
。
この共有メモリへのアクセスを制御するメカニズムが必要です。MPI がそれを行うための機能を提供しているかどうかを確認するために、昨日質問を追加しました。MPI で作成されたプロセスの共有メモリ アクセス制御メカニズムですが、MPIではそのような規定はないようです。
したがって、named semaphore
またはのいずれかを選択する必要がありますflock
。
名前付きセマフォの場合、いずれかのプロセスが を呼び出さずに突然停止した場合sem_cloe()
、そのセマフォは常に残り、 から見ることができますll /dev/shm/
。これにより、デッドロックが発生することがあります (同じコードを再度実行すると!)。このため、現在 flock を使用することを考えています。
flock
がこのタイプの操作に最適かどうかを確認したいだけですか?
を使用することの欠点はありflock
ますか?
named semaphore
and以外にflock
ここで使用できるものはありますか?
LinuxでCを使用しています。
linux - Linux でロックされたファイルをアトミックに作成するにはどうすればよいですか?
シナリオ: ネット経由でファイルをフェッチする必要があるプロセスを多数実行しています。ファイルが既にダウンロードされている場合は、ディスクにキャッシュします。別のプロセスがファイルをダウンロードしている場合は、ダウンロードが完了するまでブロックします。
これを行う最も簡単な方法を見つけようとしています。明らかな方法は次のとおりです。
このシステムは、(一見) 競合状態なしで上記の目標を達成します。
残念ながら、open() などを使用して Linux でロックされたファイルを作成する方法に関するドキュメントは見つかりませんでした。作成ステップを次のように分割すると:
作成とロックの間に競合状態が存在するようになりました (非作成プロセスは、作成者がロックを取得する前にロックを取得します)。
ファイルごとに外部ロックファイル (例: filename + '.lock) を使用できることに気付きました。これは、ファイル名を作成する前に取得しますが、これは.. 洗練されていないと感じます (そして、実際に.lock サフィックス!)
とにかくアトミックに作成してロックする方法はありますか(Windowsが提供するように)、または外部ロックファイルメソッドは標準/必須のものですか?
php - Windows上のPHPで排他的アクセスのためにディレクトリをロックする方法は?
flock()メソッドを使用してディレクトリのアドバイザリ ロックを取得し、別のプロセスが同じディレクトリに同時にアクセスできないようにしています。ファイル ハンドルを操作するためflock()
、最初にディレクトリのハンドルを開く必要があります。
ただし、これは Windows では機能しません。
fopen(.): ストリームを開けませんでした: 権限が拒否されました
Windows で同じことを行う方法はありますか、それともこのプラットフォームの制限ですか?