ロックファイル(/ソケットファイル)に基づいてプロセスを同期したい。これらのファイルは、作成者ユーザーのみが削除できる必要があります。
選択肢はたくさんあります。
/dev/shm
/var/lock
/run/lock
/run/user/<UID>
/tmp
この目的に最適な場所はどこですか?そして、上記の場所はどのように使用されることを意味していますか?
/dev/shm
:これは従来の共有メモリの実装に他なりません。 ) 概念。これは、プログラム間でデータを渡すための効率的な手段です。 1つのプログラムがメモリ部分を作成し、他のプロセス(許可されている場合)がアクセスできるようにします。これは物事をスピードアップすることになります。
/run/lock
(以前の/var/lock
) ロックファイルを含む 、つまり共有デバイスまたは他のシステムリソースが使用中であり、それを使用するプロセスのID(PID)を含むファイル。これにより、他のプロセスが共有デバイスへのアクセスを適切に調整できるようになります。
/tmp
: Filesystem Hierarchy Standard で定義されている一時ファイルの場所です/、これに続くほとんどすべてのUnixおよびLinuxディストリビューション。 RAMはディスクストレージよりも大幅に高速であるため、パフォーマンスを向上させるために /dev/shm
の代わりに/tmp
を使用できます 、プロセスがI/Oを集中的に使用し、一時ファイルを広範囲に使用する場合。
/run/user/$uid
: pam_systemd
によって作成され、保存に使用されますそのユーザーのプロセスの実行によって使用されるファイル。
あなたの質問に来ると、あなたは間違いなくあなたのロックファイルを保存するために/run/lock
ディレクトリを使うことができます。
/run/lock
の下にディレクトリを作成し、700にchmodして、そこにロックファイルを作成します。
LinuxMintの/var/lock
は、/run/lock
(Ubuntu、Linux Mint 17、CentOS 7)へのリンクです。
ログイン中にのみプロセスが実行される場合にのみ、/run/user/<UID>
の下に保存します。