启动服务似乎正在运行,但进程未生成

启动服务似乎正在运行,但进程未生成

我正在 Ubuntu VM 上设置 ElasticSearch,在将其设置为启动守护进程时遇到了一些问题。我的 ES 运行良好,我可以通过 来运行服务器sudo /usr/share/elasticsearch/bin/elasticsearch。这将运行服务器,我可以curl localhost:9200正常工作。

然后我用了这个指导设置启动服务。问题是在按照他们所说的一切操作之后:

sudo update-rc.d elasticsearch defaults 95 10

sudo /etc/init.d/elasticsearch start

我可以看到该服务似乎运行正常sudo /etc/init.d/elasticsearch status(或service elasticsearch <start|stop|restart>运行良好),但是一个top或另一个curl localhost:9200显示服务器没有启动。

此外,我可以看到启动命令的输出显示一切运行正常,没有任何错误..命令start-stop-daemon返回 0(即成功),好像什么都没有出错......

我对此还不太熟悉,所以我不知道下一步该尝试什么,也不知道在哪里可以找到错误的配置。有人有什么想法吗?谢谢

答案1

您的 Elasticsearch 服务初始化脚本没有在控制台或日志文件上打印任何错误信息,而是显示 [Ok],不是吗?

您必须使用与 init 脚本相同的用户和参数手动运行 Elaticsearch 来检查哪里出了问题。错误消息将打印在控制台上。

在初始化脚本中运行 Elasticsearch 的正确命令应该是:

sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch -d -p /var/run/elasticsearch.pid --default.config=/etc/elasticsearch/elasticsearch.yml --default.path.home=/usr/share/elasticsearch --default.path.logs=/var/log/elasticsearch --default.path.data=/var/lib/elasticsearch --default.path.work=/tmp/elasticsearch --default.path.conf=/etc/elasticsearch

只需尝试在 /etc/init.d/elasticsearch 中添加一行即可打印出上述命令:

# Start Daemon
log_daemon_msg "sudo -u $ES_USER $DAEMON $DAEMON_OPTS"    # <-- Add this line
start-stop-daemon --start -b --user "$ES_USER" -c "$ES_USER" --pidfile "$PID_FILE" --exec $DAEMON -- $DAEMON_OPTS
log_end_msg $?

相关内容