sphinx pidを/var/run/sphinx/searchd.pidに保持していますが、ディレクトリをハードリブートするたびに/ var / run / sphinxが消え、sphinxの起動に失敗します。そのディレクトリを固定する方法、または自動的に作成する方法はありますか?人々は通常、この状況にどのように対処しますか?Ubuntu Hardyを使用しています
sphinx pidを/var/run/sphinx/searchd.pidに保持していますが、ディレクトリをハードリブートするたびに/ var / run / sphinxが消え、sphinxの起動に失敗します。そのディレクトリを固定する方法、または自動的に作成する方法はありますか?人々は通常、この状況にどのように対処しますか?Ubuntu Hardyを使用しています
回答:
そのディレクトリは設計上短命です。さまざまな種類の制御スクリプトがそこを見て、どのプロセスがシグナルを送信する必要があるかを確認するため、その内容が複数のブート間で行き詰まっている場合、あらゆる種類のい効果が発生する可能性があります。最近のシステムでは、この一時的な性質は、実装によって強制された/var/run
としてtmpfs
、古いシステムだけで、起動時にディレクトリ内のすべてを削除しながら、。
したがって、Sphinxまたはその起動スクリプトを構成してそのディレクトリを作成するか、PIDファイルを/var/run
直接書き込む必要があります。
現在、これらのような一時ファイルと一時ディレクトリを作成するための集中化されたメカニズムがあります。この方法を使用するサービスは、独自の起動スクリプトからmkdirコマンドを削除し、代わりにUbuntuで.confファイルを/etc/tmpfiles.d、/run/tmpfiles.d、または/usr/lib/tmpfiles.dに配置できます。サービスは最後のオプションを好むようです。あなたの場合、ファイルを作成します/usr/lib/tmpfiles.d/sphinx.conf
。
ファイルの内容は次のとおりです。
d /var/run/sphinx 0755 root root
ここd
はディレクトリを表し、その隣にパス、権限、所有者、グループがあります。
これにより、/var/run/sphnix
再起動時にディレクトリが作成されます。
完全なドキュメントtmpfiles.dをチェックアウトします
mount
。