lsofコマンドを使用すると、あるプロセスでファイルが使用されているかどうかを判断できますが、ファイルを原子的にチェックして、 。これらのファイルは、私が制御できないさまざまな他のプログラムで使用されているため、アドバイザリロックを使用することはできません。その目的は、他のプロセスがそのファイルを変更するのを止めることです。そのため、プロセスが開いている間にファイルを移動するだけでOKではありません。どんな解決策ですか?他のプロセスが使用していないときにのみLinuxでファイルを移動
更新:私の目的に合っていると思う解決策が私にはちょうど起こりました。最終目標は、これらのファイルを他のプログラムが変更を完了したときに最終状態で処理することです。ファイルを別のディレクトリに移動すると、lsofを使用して古いパスからまだ使用中かどうかを確認できます。もしそうなら、私はそれがもはや使用されなくなり、ファイルを処理するまで、もう一度チェックします。ファイルを別のディレクトリに移動することによって、ユーザとプログラムからファイルを隠します。私はlsofを使ってファイルを処理する間にファイルを開く機会があるので、ユーザとプログラムには古いディレクトリのファイルが見えないようにしたい。つまり、ファイルを変更された状態で処理することになる。
ない、これがうまくいくかどうかわからが、ちょうど読み、それをしませマーキングしようとか、それ以上の書き込み可能:-RWます。chmod私の推測すでにオープンしているので、実行中のプロセスには影響しません。 –
PlexQ
他のプロセスが既にファイルを開いている場合、ファイルを移動することは効果がありません。ただ移動するだけです。他のプロセスがファイルを開くのを待たずに助けてくれますか? –