Sphinx pidを/var/run/sphinx/searchd.pidに保持していますが、ディレクトリをハードリブートするたびに、/ var/run/sphinxが消えてsphinxの起動に失敗します。そのディレクトリを固定したり、自動的に作成したりする方法はありますか?人々は通常、この状況をどのように扱いますか?私はUbuntu Hardyを使用しています
このディレクトリは設計上は一時的です。内容がブート全体に行き渡った場合、さまざまな種類の制御スクリプトがそこを見て、どのプロセスが信号を送るべきかを確認するため、あらゆる種類の醜い効果が発生する可能性があります。最近のシステムでは、この一時的な性質は/var/run
をtmpfs
としてマウントすることで適用されますが、古いシステムは起動時にディレクトリ内のすべてを削除しただけです。
したがって、Sphinxまたはその起動スクリプトを構成して、そのディレクトリを作成するか、PIDファイルを/var/run
に直接書き込む必要があります。
少なくとも2つの可能性があります。
mkdir -p /var/run/sphinx/
または
pid_file = /var/run/sphinx-searchd.pid
/etc/sphinx.conf
私は2番目のものです。
現在、これらのような一時ファイルとディレクトリを作成するための集中型メカニズムがあります。この方法を使用するサービスは、独自の起動スクリプトから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