我正在尝试通过主管运行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/