/ Var / run içindeki dizin, sabit yeniden başlatmadan sonra silinir


19

Sfenks pidimi /var/run/sphinx/searchd.pid içinde tutuyorum ama her seferinde / var / run / sphinx dizini yeniden başlattığımda sfenks başlatılamıyor. Bu dizinin yapışmasını veya otomatik olarak oluşturulmasını sağlamanın bir yolu var mı? İnsanlar genellikle bu durumu nasıl ele alırlar? Ubuntu Hardy kullanıyorum

ubuntu  pid 

Bize çıktı verebilir misiniz mount?
reconbot

Yanıtlar:


18

Bu dizin tasarım gereği geçici. İçeriği botlar arasında sıkışmışsa, çeşitli türlerin kontrol komut dosyaları hangi süreçleri sinyal vermeleri gerektiğini görmek için oraya baktıkça her türlü çirkin efekt ortaya çıkabilir. Son sistem üzerinde bu geçici doğası montaj tarafından zorlanır /var/runolarak tmpfseski sistemler sadece başlangıçta dizinde şeyi silinmiş ise,.

Bu nedenle, bu dizini oluşturmak için Sphinx'i veya başlangıç ​​komut dosyasını yapılandırmanız veya PID dosyasını /var/rundoğrudan yazmanız gerekir .


4
/ Var / run açıklaması için +1. Ancak PID dosyasının yeniden başlatma sırasında kalıcı olmasını istemediğini unutmayın; sadece sfenks dizini.
Steve Folly

15

En az iki şansınız var:

  • init betiğinizi bir mkdir -p /var/run/sphinx/

veya

  • Ayarlamak pid_file = /var/run/sphinx-searchd.pid içinde/etc/sphinx.conf

Ben ikincisiyim.


2
Ve elbette bu, / var / run dizininde doğrudan yazabilmek veya bir dizin oluşturabilmek için başlangıç ​​komut dosyasının root olarak çalışması gerektiği anlamına gelir. Bu sinir bozucu ...
Eloff

İkinci çözümü de seçtim. Bunun önceliği varmış gibi görünüyor (cron, ssh, atd, syslog).
BillMan

2

artık bunlar gibi geçici dosyaların ve dizinlerin oluşturulması için merkezi bir mekanizma bulunmaktadır. Bu yöntemi kullanmak isteyen bir hizmet kendi başlangıç ​​komut dosyasında mkdir komutlarını kaldırabilir ve bunun yerine Ubuntu ile /etc/tmpfiles.d, /run/tmpfiles.d veya /usr/lib/tmpfiles.d dosyalarına bir .conf dosyası yerleştirebilir. son seçeneği tercih ediyor gibi görünüyor. sizin durumunuz için bir dosya oluşturun /usr/lib/tmpfiles.d/sphinx.conf.
dosyanın içeriği:
d /var/run/sphinx 0755 root root

burada ddizin, yanında yol, izin, sahip ve grup anlamına gelir.
Bu /var/run/sphnix, yeniden başlatma sırasında dizini oluşturur .

Tmpfiles.d belgelerinin tamamını inceleyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.