运行服务elasticsearch启动失败,但手动运行该命令成功

时间:2015-10-21 21:06:29

标签: service elasticsearch chef init.d test-kitchen

上下文

  • 我正在测试由厨师设置的弹性搜索1.7.1配置,以及在厨房中进行测试
  • 厨师脚本和配置有效,因为它以某种方式在生产中运行
  • 正在运行service elasticsearch start,因为elasticsearch用户失败,但它委派的实际调用没有。

根据我所学到的,厨师脚本以root身份运行。因此,当测试失败时(它通过运行service elasticsearch status检查弹性搜索是否正在运行),我登录到流浪汉机器。作为root用户,如果我运行service elasticsearch start,我会收到一个OK(这是不正确的,但是另一个issue),然后运行后续的service elasticsearch status,我遇到了错误: elasticsearch dead but pid file exists

进一步深入,我在由service运行的init.d脚本上设置调试语句,并看到实际命令基本上是对init.d/functions函数{{1}的调用},只是打电话:

daemon

所以我尝试了一个runuser -s /bin/bash elasticsearch -c 'ulimit -S -c 0 >/dev/null 2>&1 ; /usr/share/elasticsearch/bin/elasticsearch -p /var/run/elasticsearch/elasticsearch.pid -d -Des.default.path.home=/usr/share/elasticsearch -Des.default.path.logs=/var/log/elasticsearch/ -Des.default.path.data=/data/elasticsearch/data/ -Des.default.path.work=/tmp/elasticsearch -Des.default.path.conf=/etc/elasticsearch/',然后在引号中运行了部分:

sudo su - elasticsearch

随后的[elasticsearch@default-centos ~]$ ulimit -S -c 0 >/dev/null 2>&1 ; /usr/share/elasticsearch/bin/elasticsearch -p /var/run/elasticsearch/elasticsearch.pid -d -Des.default.path.home=/usr/share/elasticsearch -Des.default.path.logs=/var/log/elasticsearch/ -Des.default.path.data=/data/elasticsearch/data/ -Des.default.path.work=/tmp/elasticsearch -Des.default.path.conf=/etc/elasticsearch/ 显示弹性搜索运行正常!我甚至将记录设置为TRACE,并且没有迹象表明elasticsearch已经崩溃。

0 个答案:

没有答案
相关问题