elasticsearch - 替代sudo/etc/init.d/elasticsearch start

标签 elasticsearch supervisord

我正在尝试通过主管运行elasticsearch。为此,我需要一个命令来启动elasticsearch,而不在后台运行它。我当前的监督脚本看起来像

[program:elasticsearch]
command=/etc/init.d/elasticsearch start
autostart=true
autorestart=true
startretries=3
user=root
stdout_logfile=/var/www/elasticsearch_std.log

但由于“/etc/init.d/elasticsearch start”命令在后台运行elasticsearch,因此一旦命令返回成功启动,它将尝试再次启动elasticsearch,从而导致
DEBG 'elasticsearch' stdout output:
 * Already running.
   ...done.

由于我告诉主管重新启动3次,因此在放弃之前它将执行3次。但是,这样做的目的当然是在发生崩溃时主管应重新启动elasticsearch。
所以我需要一个在前台启动elasticsearch的命令。

编辑:
按照下面的建议和https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html的elasticsearch指令,我尝试运行
/usr/share/elasticsearch/bin/elasticsearch -Epath.conf=/etc/elasticsearch -Epath.logs=/var/log/elasticsearch -Epath.data=/var/lib/elasticsearch
Error: encountered environment variables that are no longer supported
Use jvm.options or ES_JAVA_OPTS to configure the JVM
ES_HEAP_SIZE=256m: set -Xms256m and -Xmx256m in jvm.options or add "-Xms256m -Xmx256m" to ES_JAVA_OPTS

我已经设置了,所以我不明白此错误消息
-Xms256m
-Xmx256m

在/etc/elasticsearch/jvm.options中

EDIT2:我也尝试通过环境设置这些参数,但也没有用
ES_JAVA_OPTS="-Xms256m -Xmx256m" /usr/share/elasticsearch/bin/elasticsearch -Epath.conf=/etc/elasticsearch -Epath.logs=/var/log/elasticsearch -Epath.data=/var/lib/elasticsearch
Error: encountered environment variables that are no longer supported
Use jvm.options or ES_JAVA_OPTS to configure the JVM
ES_HEAP_SIZE=256m: set -Xms256m and -Xmx256m in jvm.options or add "-Xms256m -Xmx256m" to ES_JAVA_OPTS

/ etc / default / elasticsearch文件将所有行注释掉,除了
ES_STARTUP_SLEEP_TIME=5

最佳答案

直接使用bin/elasticsearch启动elasticsearch。使用init文件将立即守护并退出,这不适用于 super 用户。
而是将command属性设置为类似以下内容:

command=/usr/share/elasticsearch/bin/elasticsearch
    -Edefault.path.conf=/etc/elasticsearch
    -Edefault.path.logs=/var/log/elasticsearch
    -Edefault.path.data=/var/lib/elasticsearch

相应地替换路径。

您还可以设置default.path.conf并在其中编辑YAML文件以进行数据和日志设置(以及其他设置)。

关于elasticsearch - 替代sudo/etc/init.d/elasticsearch start,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43783312/

相关文章:

java - NoClassDefFoundError 创建 RestHighLevelClient bean 时出错

bash - 如何在 Docker 上使用主管在后台启动 muli 进程

docker - 在Docker容器中启动系统服务

scala - 无法通过 Elasticsearch-hadoop 库在多个 spark 节点上的 RDD 上应用映射

sql - Microsoft SQL Server API运行SQL查询以将数据导出到自定义目标

python - 主管启动 Gunicorn 时出现问题

deployment - 如何使用supervisord部署tornado websocket多进程应用程序?

linux - 安装两次后supervisor centos故障排除,有2种不同的方法

elasticsearch - 为什么kibana中的唯一计数可视化图表不正确?

couchbase - 删除执行XDCR时Couchbase添加的默认字段 “doc”