La directory in / var / run viene eliminata dopo il riavvio forzato


19

Tengo il mio phin sfinge in /var/run/sphinx/searchd.pid ma ogni volta che riavvio difficile la directory / var / run / sphinx scompare e la sfinge non si avvia. C'è un modo per far sì che quella directory si attacchi o la crei automaticamente? In che modo le persone di solito gestiscono questa situazione? Uso Ubuntu Hardy

ubuntu  pid 

Puoi darci l'output di mount?
Riconnettere il

Risposte:


18

Quella directory è effimera dal design. Se il suo contenuto si incastrasse tra gli stivali, potrebbero verificarsi tutti i tipi di brutti effetti, poiché script di controllo di vario genere si guardano lì dentro per vedere quali processi dovrebbero essere segnalati. Su un sistema recente, questa natura temporanea viene applicata montando /var/runas tmpfs, mentre i sistemi più vecchi hanno appena eliminato tutto nella directory all'avvio.

Pertanto, è necessario configurare Sphinx o il relativo script di avvio per creare quella directory o scrivere direttamente il file PID /var/run.


4
+1 per la descrizione di / var / run. Si noti che non desidera che il file PID sia persistente durante un riavvio; solo la directory sfinge.
Steve Folly,

15

Hai almeno due possibilità:

  • cambia il tuo script init per fare un mkdir -p /var/run/sphinx/

o

  • set pid_file = /var/run/sphinx-searchd.pidin/etc/sphinx.conf

Sono per il secondo.


2
E ovviamente questo significa che lo script di avvio deve essere eseguito come root per poter scrivere direttamente o creare una directory in / var / run. Il che è fastidioso ...
Eloff,

Ho scelto anche la seconda soluzione. Sembra che ci sia una precedenza per questo (cron, ssh, atd, syslog).
BillMan,

2

esiste ora un meccanismo centralizzato per la creazione di file e directory temporanei come questi. Un servizio che desidera utilizzare questo metodo può rimuovere i comandi mkdir nel proprio script di avvio e posizionare invece un file .conf in /etc/tmpfiles.d, /run/tmpfiles.d o /usr/lib/tmpfiles.d, con Ubuntu servizi che sembrano preferire l'ultima opzione. per il tuo caso crea un file /usr/lib/tmpfiles.d/sphinx.conf.
il contenuto del file sarebbe:
d /var/run/sphinx 0755 root root

qui dsta per directory, accanto a esso è il percorso, l'autorizzazione, il proprietario e il gruppo.
Questo creerà la /var/run/sphnixdirectory al riavvio.

Consulta la documentazione completa tmpfiles.d

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.