Programm automatisch starten (Sphinx searchd), wenn Server neu gestartet wird?

2306
Nate

Wenn mein Server (auf dem CENTOS ausgeführt wird) neu gestartet wird, muss ich manuell für jede Website, auf der Sphinx verwendet wird, searchd starten.

Es ist nicht schwer zu tun (einfach eine Zeile im Terminal für jede Site kopieren / einfügen), aber wenn ich es vergesse oder nicht weiß, dass der Server neu gestartet wurde, ist die Suche auf meinen Websites beendet.

Der Befehl, auf den ich mich beziehe, um searchd zu starten, lautet wie folgt:

/usr/local/bin/searchd --config /path/to/sphinx/etc/sphinx.conf 

Gibt es eine Möglichkeit, searchd automatisch zu starten, wenn mein Server neu gestartet wird?

2
Ändern Sie die Apache-Start / Stopp-Skripts, um auch Sphinx zu starten / stoppen. ssnobody vor 9 Jahren 1
searchd ist Teil von Sphinx, nicht von Apache, also ein separater Dienst. Sie sollten es nicht neu starten, wenn Sie Apache neu starten. Um sicherzustellen, dass der Dienst ausgeführt wird, fügen Sie Ihren Befehl oben in / etc / rc.local ein. harrymc vor 9 Jahren 0
@ harrymc Ich glaube du hast recht. Ich ändere meine Frage. Nate vor 9 Jahren 1
Welche Version von CentOS verwenden Sie? Dies ist wichtig zu wissen, da CentOS 7 systemd für den Systemstart verwendet. FSMaxB vor 9 Jahren 0
@FSMaxB Ich habe Version 6.6 Nate vor 9 Jahren 0

3 Antworten auf die Frage

4
João Martins

in meinem Fall (Debian 8.9)

 /usr/bin/searchd --config /etc/sphinxsearch/sphinx.conf 

startet keine Sphinx und ich muss laufen

 sudo service sphinxsearch start 

um die Sphinx anzufangen

Die Antwort von harrymc wies mich auf die richtige Lösung und beim Editieren hin

 sudo nano /etc/rc.local 

und enthalten

 sudo service sphinxsearch start 

kurz vor der Exit-0-Zeile, dann wurde beim Neustart Sphinx geladen.

2
harrymc

Um Sphinx für den automatischen Start zu konfigurieren, fügen Sie zunächst den searchdStartbefehl zur Serverdatei hinzu rc.local:

sudo vim /etc/rc.local 

Fügen Sie den folgenden Code direkt über der exit 0Zeile ein:

/usr/bin/searchd --config /var/www/yoursitecom/sphinx/etc/sphinx.conf 

Wenn nun alles eingerichtet ist und ausgeführt wird, führen Sie eine Crontab aus, um den Index alle 6 Stunden zu drehen (neu zu erstellen), damit der Index auf dem neuesten Stand der Datenbank bleibt:

sudo crontab -e 

Fügen Sie die folgende Zeile am unteren Rand des Dokuments hinzu.

0 */6 * * * /usr/bin/indexer --rotate --config /var/www/yoursitecom/sphinx/etc/sphinx.conf --all 

Quelle: Arbeiten mit Sphinx (Suchmaschine) auf einem LAMP-Stack-Server (Linux, Apache, MySQL und PHP) .

0
dtoubelis

Sie können auch die Verwendung eines Supervisors in Betracht ziehen . Es ist nicht so einfach wie das Verwenden /etc/rc.localund erfordert einige Konfiguration, aber es gibt mehr Flexibilität.