3

当我尝试启动 searchd 时,它给出了以下错误。

bind() 在 0.0.0.0 失败,正在重试...

致命:bind() 在 0.0.0.0 失败:非法搜索


我可以找到一个正在运行的 searchd 进程

根 14863 0.1 0.0 73884 3960 ?Ssl 23:21 0:00 /usr/bin/searchd --nodetach

现在,当我杀死它或尝试停止它(searchd --stop)时,它会立即重新启动。

根 15841 0.5 0.0 73884 3960 ?Ssl 23:33 0:00 /usr/bin/searchd --nodetach


我猜有一些设置可以在进程未运行时自动启动。我怎样才能阻止这种情况发生?

4

4 回答 4

7

默认情况下,debian 包似乎会使用额外的 keepalive 进程启动 Sphinx。我能够成功地阻止它;

sudo 服务 sphinxsearch 停止

于 2012-08-21T01:42:09.070 回答
1

'init: ... main process end, respawning' 表明在 init 脚本中有一些东西设置了一个看门狗来确保 sphinx 不会死。

也许您需要通过 init 脚本本身关闭 sphinx

/etc/init.d/sphinxsearch stop
于 2012-03-24T16:44:30.033 回答
1

据我所知,Upstart 负责在您尝试停止/杀死它后重新生成 searchd。

由于我们知道这个进程由 upstart 管理,我们可以使用“stop sphinxsearch”终止守护进程,然后使用“start sphinxsearch”重新启动它。

如果您想像任何其他进程一样正常终止它,则可以删除配置文件 /etc/sphinxsearch/sphinx.conf 中的“--nodetach”参数。但是,通过这样做,您不能再使用“停止 sphinxsearch”来停止进程。

于 2012-11-19T05:41:01.013 回答
-1

不,没有任何 sphinx 选项可以重新启动 Sphinx。可能是为 Sphinx 安装了一些监控工具,例如 monit。

于 2012-03-24T12:11:40.430 回答