web-dev-qa-db-ja.com

Linuxファイル階層-ロックファイルを保存するのに最適な場所はどこですか?

ロックファイル(/ソケットファイル)に基づいてプロセスを同期したい。これらのファイルは、作成者ユーザーのみが削除できる必要があります。

選択肢はたくさんあります。

/dev/shm

/var/lock

/run/lock

/run/user/<UID>

/tmp

この目的に最適な場所はどこですか?そして、上記の場所はどのように使用されることを意味していますか?

4
MCH
  1. /dev/shm:これは従来の共有メモリの実装に他なりません。 ) 概念。これは、プログラム間でデータを渡すための効率的な手段です。 1つのプログラムがメモリ部分を作成し、他のプロセス(許可されている場合)がアクセスできるようにします。これは物事をスピードアップすることになります。

  2. /run/lock(以前の/var/lockロックファイルを含む 、つまり共有デバイスまたは他のシステムリソースが使用中であり、それを使用するプロセスのID(PID)を含むファイル。これにより、他のプロセスが共有デバイスへのアクセスを適切に調整できるようになります。

  3. /tmpFilesystem Hierarchy Standard で定義されている一時ファイルの場所です/、これに続くほとんどすべてのUnixおよびLinuxディストリビューション。 RAMはディスクストレージよりも大幅に高速であるため、パフォーマンスを向上させるために /dev/shmの代わりに/tmpを使用できます 、プロセスがI/Oを集中的に使用し、一時ファイルを広範囲に使用する場合。

  4. /run/user/$uidpam_systemd によって作成され、保存に使用されますそのユーザーのプロセスの実行によって使用されるファイル。

あなたの質問に来ると、あなたは間違いなくあなたのロックファイルを保存するために/run/lockディレクトリを使うことができます。

7
Rahul

/run/lockの下にディレクトリを作成し、700にchmodして、そこにロックファイルを作成します。

LinuxMintの/var/lockは、/run/lock(Ubuntu、Linux Mint 17、CentOS 7)へのリンクです。

ログイン中にのみプロセスが実行される場合にのみ、/run/user/<UID>の下に保存します。

0
Anthon