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


21

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

/ tmpは、/ tmpを保存する場所として適していますか、それとも欠点がありますか?


6
/ var / runの何が問題になっていますか?
12

このスタックオーバーフローの質問は関連性があります:stackoverflow.com/q/5173636/1071869
Renan

/ var / runの唯一の間違いは、ユーザーへの書き込みアクセス権がないことです
。– Murko

2
@Murkoの場合、pidファイルをユーザーのホームディレクトリに保存する必要があります。
レナン

回答:


22

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

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

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

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

pidfilesの通常の場所は/ var / runです。ほとんどのユニックスは、ブート時にこのディレクトリを消去します。Ubuntuでは、これは/ var / run-in-memory filesystem(tmpfs)によって実現されます。

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

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


9

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

/var/run/user/[$uid]

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.