タイトルに書かれているように、initスクリプトにpidファイルをどこに書き込む必要がありますか?/var/runの代わりに選択する必要がある標準パスはありますか?
/ tmpは、/ tmpを格納するのに適した場所ですか、それとも欠点がありますか?
要するに:どこにでも保存できます(たとえば、/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
。
必要なのが/var/run
への非ルート書き込みアクセスの場合、/var/run/user
には個々のユーザー用のサブディレクトリがあることに注意してください。現在のユーザーのUIDを取得するだけです。
/var/run/user/[$uid]