web-dev-qa-db-ja.com

Linux-/ var / runの代わりにpidファイルを保存する別の場所

タイトルに書かれているように、initスクリプトにpidファイルをどこに書き込む必要がありますか?/var/runの代わりに選択する必要がある標準パスはありますか?

/ tmpは、/ tmpを格納するのに適した場所ですか、それとも欠点がありますか?

22
Murko

要するに:どこにでも保存できます(たとえば、/tmpまたは/var/tmp)。ただし、/var/runは推奨標準。

/var/runファイルシステム階層標準 です。

このディレクトリには、ブート以降のシステムを説明するシステム情報データが含まれています。このディレクトリの下にあるファイルは、起動プロセスの最初に消去(必要に応じて削除または切り捨て)する必要があります。プログラムには/ var/runのサブディレクトリがある場合があります。これは、複数のランタイムファイルを使用するプログラムに推奨されます。[脚注37]

そして望ましい機能は、ほとんどのディストリビューション 自動的にクリーンアップ です(一部のディストリビューションでは、ブート時にクリーンアップされない/tmpとは異なります)-これにより、古くなったpidファイルを回避できます。

Pidfilesの通常の場所は/ var/runです。ほとんどのunicesは起動時にこのディレクトリをクリーンアップします。 Ubuntuでは、これは/ var/runインメモリファイルシステム(tmpfs)によって実現されます。

それをどこに保存するかはあなたの選択ですが、私は標準で行きます。

/var/runにアクセスできない場合は、pidファイルをユーザーのホームディレクトリに保存する必要があります。 ~/.my_app.pid

22
Renan

必要なのが/var/runへの非ルート書き込みアクセスの場合、/var/run/userには個々のユーザー用のサブディレクトリがあることに注意してください。現在のユーザーのUIDを取得するだけです。

/var/run/user/[$uid]

9
dwk