ハード再起動後に/ var / runのディレクトリが削除されます


19

sphinx pidを/var/run/sphinx/searchd.pidに保持していますが、ディレクトリをハードリブートするたびに/ var / run / sphinxが消え、sphinxの起動に失敗します。そのディレクトリを固定する方法、または自動的に作成する方法はありますか?人々は通常、この状況にどのように対処しますか?Ubuntu Hardyを使用しています

ubuntu  pid 

の出力を教えてくださいmount
reconbot

回答:


18

そのディレクトリは設計上短命です。さまざまな種類の制御スクリプトがそこを見て、どのプロセスがシグナルを送信する必要があるかを確認するため、その内容が複数のブート間で行き詰まっている場合、あらゆる種類のい効果が発生する可能性があります。最近のシステムでは、この一時的な性質は、実装によって強制された/var/runとしてtmpfs、古いシステムだけで、起動時にディレクトリ内のすべてを削除しながら、。

したがって、Sphinxまたはその起動スクリプトを構成してそのディレクトリを作成するか、PIDファイルを/var/run直接書き込む必要があります。


4
/ var / runの説明については+1。しかし、PIDファイルを再起動後も保持したくないことに注意してください。ちょうどsphinxディレクトリ。
スティーブフォリー

15

少なくとも2つのチャンスがあります。

  • 初期化スクリプトを変更して mkdir -p /var/run/sphinx/

または

  • セットpid_file = /var/run/sphinx-searchd.pid/etc/sphinx.conf

私は2番目のものです。


2
そしてもちろん、これは、起動スクリプトがrootとして実行され、/ var / runに直接書き込みまたはディレクトリを作成できることを意味します。迷惑な
...-Eloff

2番目のソリューションも選択しました。これには優先順位があるようです(cron、ssh、atd、syslog)。
ビルマン

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をチェックアウトします

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