elasticsearch 无法在 ubuntu 15.10 中启动服务
Posted
技术标签:
【中文标题】elasticsearch 无法在 ubuntu 15.10 中启动服务【英文标题】:elasticsearch can't start service in ubuntu 15.10 【发布时间】:2016-05-15 22:11:05 【问题描述】:我正在尝试在我的系统上设置 elasticsearch。我安装了它,但似乎该过程没有开始。我无法通过 curl 获得响应。 我读到了一些关于 pid owner 设置不正确的问题,尝试了这些步骤,但它仍然无法正常工作。 如果我将“set -x”放入 /etc/init.d/elasticsearch 并尝试
/etc/init.d/elasticsearch 重启
我得到这个输出
root@sid-laptop:/etc/init.d# /etc/init.d/elasticsearch restart + 身份证 -u + [ 0 -ne 0 ] + . /lib/lsb/init 函数 + 运行部件 --lsbsysinit --list /lib/lsb/init-functions.d + [ -r /lib/lsb/init-functions.d/01-upstart-lsb ] + . /lib/lsb/init-functions.d/01-upstart-lsb + 取消设置 UPSTART_SESSION + _RC_SCRIPT=/etc/init.d/elasticsearch + [ -r /etc/init//etc/init.d/elasticsearch.conf ] + _UPSTART_JOB=弹性搜索 + [ -r /etc/init/elasticsearch.conf ] + [ -r /lib/lsb/init-functions.d/20-left-info-blocks ] + . /lib/lsb/init-functions.d/20-left-info-blocks + [ -r /lib/lsb/init-functions.d/40-systemd ] + . /lib/lsb/init-functions.d/40-systemd + _use_systemctl=0 + [ -d /run/systemd/system ] + [-n] + [ 6714 -ne 1 ] + [-z] + [-z] + readlink -f /etc/init.d/elasticsearch + _use_systemctl=1 + prog=弹性搜索 + 服务=elasticsearch.service + systemctl -p CanReload 显示 elasticsearch.service + [ CanReload=否 = CanReload=否] + [重启=重新加载] + [ 1 = 1 ] + 设置 +e + 设置 +u + [ xrestart = xstart -o xrestart = xstop -o xrestart = xrestart -o xrestart = xreload -o xrestart = xforce-reload -o xrestart = xstatus ] + systemctl_redirect /etc/init.d/elasticsearch 重启 + 当地人 + 本地 rc + 本地 prog=elasticsearch + 本地命令=重启 + s=重启elasticsearch(通过systemctl) + 服务=elasticsearch.service + systemctl -p LoadState 显示 elasticsearch.service + 状态=LoadState=已加载 + [加载状态=加载=加载状态=屏蔽] + systemctl is-system-running + 输出=运行 + [重启=状态] + log_daemon_msg 重启elasticsearch(通过systemctl)elasticsearch.service + [ -z 重新启动弹性搜索(通过 systemctl)] + log_daemon_msg_pre 重启elasticsearch(通过systemctl)elasticsearch.service + log_use_fancy_output + TPUT=/usr/bin/tput + EXPR=/usr/bin/expr + [ -t 1 ] + [ xxterm-256color != x ] + [ xxterm-256color != xdumb ] + [ -x /usr/bin/tput ] + [ -x /usr/bin/expr ] + /usr/bin/tput hpa 60 + /usr/bin/tput setaf 1 + [-z] + 花式=1 + 真 + /bin/echo -n [....] [....] + [ -z elasticsearch.service ] + echo -n 重启elasticsearch(通过systemctl):elasticsearch.service 重启elasticsearch(通过systemctl):elasticsearch.service+ log_daemon_msg_post 重启elasticsearch(通过systemctl)elasticsearch.service + : + /bin/systemctl 重启 elasticsearch.service 警告:磁盘上的 elasticsearch.service 已更改。运行“systemctl daemon-reload”重新加载单元。 + rc=0 + [重启=状态] + log_end_msg 0 + [ -z 0 ] + 本地返回值 + retval=0 + log_end_msg_pre 0 + log_use_fancy_output + TPUT=/usr/bin/tput + EXPR=/usr/bin/expr + [ -t 1 ] + [ xxterm-256color != x ] + [ xxterm-256color != xdumb ] + [ -x /usr/bin/tput ] + [ -x /usr/bin/expr ] + /usr/bin/tput hpa 60 + /usr/bin/tput setaf 1 + [ -z 1 ] + 真 + 真 + /usr/bin/tput setaf 1 + 红= + /usr/bin/tput setaf 2 + 绿色= + /usr/bin/tput setaf 3 + 黄色= + /usr/bin/tput 操作 + 正常= + /usr/bin/tput 公民 + /usr/bin/tput sc + /usr/bin/tput hpa 0 + [ 0 -eq 0 ] + /bin/echo -ne [好的 [ 好的 + /usr/bin/tput rc + /usr/bin/tput 标准 + log_use_fancy_output + TPUT=/usr/bin/tput + EXPR=/usr/bin/expr + [ -t 1 ] + [ xxterm-256color != x ] + [ xxterm-256color != xdumb ] + [ -x /usr/bin/tput ] + [ -x /usr/bin/expr ] + /usr/bin/tput hpa 60 + /usr/bin/tput setaf 1 + [ -z 1 ] + 真 + 真 + /usr/bin/tput setaf 1 + 红= + /usr/bin/tput setaf 3 + 黄色= + /usr/bin/tput 操作 + 正常= + [ 0 -eq 0 ] +回声。 . + log_end_msg_post 0 + : + 返回 0 + 返回 0 + 退出 0
尝试了一整天,仍然无法解决这个问题。 “ps -A”也没有显示弹性搜索过程。 请帮忙。
更多信息: 我试过了
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
/
它给:
sid@sid-laptop:/etc/init.d$ 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
[sudo] sid 的密码:
sid@sid-laptop:/etc/init.d$ 1.6.2: pid 失败...
- FileNotFoundException[/var/run/elasticsearch.pid(权限被拒绝)]
java.io.FileNotFoundException:/var/run/elasticsearch.pid(权限被拒绝)
在 java.io.FileOutputStream.open0(本机方法)
在 java.io.FileOutputStream.open(FileOutputStream.java:270)
在 java.io.FileOutputStream.(FileOutputStream.java:213)
在 java.io.FileOutputStream.(FileOutputStream.java:162)
在 org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:194)
在 org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32
【问题讨论】:
最可能的权限问题:在与其他用户一起运行并崩溃后尝试与用户 elasticsearch 一起运行。什么显示sudo ls -la /var/run/elasticsearch.pid
?同时重新加载 systemd sudo systemctl daemon-reload
并粘贴纯文本(不是终端输出,因为它无法读取)
“ls: 无法访问 /var/run/elasticsearch.pid: 没有这样的文件或目录”的结果 ":"ls: 无法访问 /var/run/elasticsearch.pid: 没有这样的文件或目录"
我没明白你说的纯文本是什么意思?
我的意思是/etc/init.d/elasticsearch restart
的输出看起来不像典型的文本输出,但更像是$TERM
或直接粘贴完整输出而不是文本输出的问题。无论如何,它现在不相关。好的。您能否检查/var/run
是否存在,实际上是一个目录(不是符号链接或文件)并且用户elasticsearch 有权写入该目录(类似于sudo -u elasticsearch ls -la /var/run
sudo -u elasticsearch touch /var/run/testelasticsearch
和之后sudo -u elasticsearch rm /var/run/testelasticsearch
var/run 是我认为的符号链接...它在运行的文件夹图标上显示一个箭头...
【参考方案1】:
Ubuntu 不允许管理员以外的其他用户写入 /var/run,这是有充分理由的。
您是否注意到 elasticsearch 是由 elasticsearch 在安装时创建的“elasticsearch”用户启动的:
sudo -u elasticsearch....
因此,我相信最好的解决方案是在 /var/run 文件夹中创建一个新文件夹,而不是更改所有用户的 /var/run 权限或尝试为 elasticsearch 用户授予管理员权限
sudo mkdir /var/run/elasticsearch/
并赋予elasticsearch用户权限
sudo chown elasticsearch:elasticsearch /var/run/elasticsearch
在您需要更改 elasticsearch 初始化脚本以编写此新文件夹的 pid 文件后
sudo vim /etc/init.d/elasticsearch
将属性 PID_FILE 更新为
PID_FILE=/var/run/elasticsearch/$NAME.pid
这对我有用。我希望它对你有用;)
【讨论】:
谢谢,您的方法非常有效。我不明白的是我从 1.7.2 升级到 elasticsearch 1.7.3 后才遇到这个问题。在此之前,elasticsearch 可以正常工作。你呢?再次感谢。 嘿。在我看来,这是一次旧的尝试,很抱歉我忘记了我在这个版本中使用的版本。请小心将此视为一种解决方法。我相信这不是最好的解决方案,因为我们不应该搞乱 /etc/init.d/。 知道了。谢谢。以上是关于elasticsearch 无法在 ubuntu 15.10 中启动服务的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu 16.04 安装 ElasticSearch 5.x,启动失败
ubuntu 20.04部署elasticsearch 8.*(安装es)