在ubuntu 15.10中,elasticsearch无法启动服务 [英] elasticsearch can't start service in ubuntu 15.10

查看:109
本文介绍了在ubuntu 15.10中,elasticsearch无法启动服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在我的系统上设置弹性搜索。我安装它,但似乎进程没有启动。我不能通过卷曲得到回应。
我读了关于pid所有者的一些问题没有正确设置,尝试的步骤,但它仍然不工作。
如果我在/etc/init.d/elasticsearch中放置set -x,然后尝试

 /etc/init.d/elasticsearch restart 

我得到这个输出

 root @ sid-laptop:/ etc / init .d#/etc/init.d/elasticsearch restart 
+ id -u
+ [0 -ne 0]
+。 / lib / lsb / init-functions
+ run-parts --lsbsysinit --list /lib/lsb/init-functions.d
+ [-r /lib/lsb/init-functions.d / 01-upstart-lsb]
+。 /lib/lsb/init-functions.d/01-upstart-lsb
+ unset UPSTART_SESSION
+ _RC_SCRIPT = / etc / init.d / elasticsearch
+ [-r / etc / init //etc/init.d/elasticsearch.conf]
+ _UPSTART_JOB = elasticsearch
+ [-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 = elasticsearch.service
+ systemctl -p CanReload show elasticsearch.service
+ [CanReload = no = CanReload = no]
+ restart = reload]
+ [1 = 1]
+ set + e
+ set + 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 restart
+ local s
+ local rc
+ local prog = elasticsearch
+ local command = restart
+ s =重新启动弹性搜索(通过systemctl)
+ service = elasticsearch.service
+ systemctl -p LoadState show elasticsearch.service
+ state = LoadState = loaded
+ [LoadState = loaded = LoadState = masked]
+ systemctl is-系统运行
+ OUT =运行
+ [restart = status]
+ log_daemon_msg重新启动弹性搜索(通过systemctl)elasticsearch.service
+ [-z重新启动弹性搜索(通过systemctl) ]
+ log_daemon_msg_pre重新启动弹性搜索(via 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]
+ FANCYTTY = 1
+ true
+ / bin / echo -n [....]
[....] + [-z elasticsearch.service]
+ echo -n重新启动弹性搜索(通过systemctl):elasticsearch.service
重新启动弹性搜索(通过systemctl):elasticsearch.service + log_daemon_msg_post重新启动弹性搜索(通过systemctl)elasticsearch.service
+:
+ / bin / systemctl restart elasticsearch.service
警告:elasticsea rch.service在磁盘上更改。运行'systemctl daemon-reload'来重新加载单元。
+ rc = 0
+ [restart = status]
+ 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]
+ true
+ true
+ / usr / bin / tput setaf 1
+ RED =
+ / usr / bin / tput setaf 2
+ GREEN =
+ / usr / bin / tput setaf 3
+ YELLOW =
+ / usr / bin / tput op
+ NORMAL =
+ / usr / bin / tput civis
+ usr / bin / tput sc
+ / usr / bin / tput hpa 0
+ [0 -eq 0]
+ / bin / echo -ne [ok
[ok + / usr / bin / tput rc
+ / usr / bin / tput cnorm
+ 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]
+ true
+ true
+ / usr / bin / tput setaf 1
+ RED =
+ / usr / bin / tput setaf 3
+ YELLOW =
+ / usr / bin / tput op
+ NORMAL =
+ [0 -eq 0]
+ echo。

+ log_end_msg_post 0
+:
+返回0
+返回0
+退出0

尝试整整一天,仍然无法确定这一点。

另外ps -A没有显示弹性搜索过程。
请帮助。



更多信息:

我试过

  sudo -u弹性搜索/ 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(Permission denied)]
java.io.FileNotFoundException:/var/run/elasticsearch.pid(Permission denied)
在java.io. FileAutputStream.open0 .io.FileOutputStream。(FileOutputStream.java:162)
在org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:194)
在org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch。 java:32


解决方案

Ubuntu不允许其他用户比管理员写你可以注意到弹性搜索是由弹性搜索创建的弹性搜索用户启动的:


sudo -u弹性搜索....


所以不是更改/ var /运行权限给所有的用户或尝试给予弹性搜索用户的管理权限我相信最好的解决方案是在/ var / run文件夹内创建一个新的文件夹

  sudo mkdir / var / run / elasticsearch / 

给弹性搜索用户权限

  sudo chown elasticsearch:elasticsearch / var / run / elasticsearch 

在需要更改elasticsearch init脚本以编写此新文件夹的pid文件后

  sudo vim /etc/init.d/elasticsearch 

将属性PID_FILE更新为

  PID_FILE = / var / run / elasticsearch / $ NAME.pid 

这对我有用我希望它适用于你;)


I am trying to setup elasticsearch on my system.I installed it but it seems the process is not starting. I cant get response via curl. I read about some problem regarding pid owner not correctly setup, tried the steps but it still isnt working. If i put "set -x" in /etc/init.d/elasticsearch and try

/etc/init.d/elasticsearch restart

I get this output

root@sid-laptop:/etc/init.d# /etc/init.d/elasticsearch restart
+ id -u
+ [ 0 -ne 0 ]
+ . /lib/lsb/init-functions
+ run-parts --lsbsysinit --list /lib/lsb/init-functions.d
+ [ -r /lib/lsb/init-functions.d/01-upstart-lsb ]
+ . /lib/lsb/init-functions.d/01-upstart-lsb
+ unset UPSTART_SESSION
+ _RC_SCRIPT=/etc/init.d/elasticsearch
+ [ -r /etc/init//etc/init.d/elasticsearch.conf ]
+ _UPSTART_JOB=elasticsearch
+ [ -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=elasticsearch.service
+ systemctl -p CanReload show elasticsearch.service
+ [ CanReload=no = CanReload=no ]
+ [ restart = reload ]
+ [ 1 = 1 ]
+ set +e
+ set +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 restart
+ local s
+ local rc
+ local prog=elasticsearch
+ local command=restart
+ s=Restarting elasticsearch (via systemctl)
+ service=elasticsearch.service
+ systemctl -p LoadState show elasticsearch.service
+ state=LoadState=loaded
+ [ LoadState=loaded = LoadState=masked ]
+ systemctl is-system-running
+ OUT=running
+ [ restart = status ]
+ log_daemon_msg Restarting elasticsearch (via systemctl) elasticsearch.service
+ [ -z Restarting elasticsearch (via systemctl) ]
+ log_daemon_msg_pre Restarting elasticsearch (via 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 ]
+ FANCYTTY=1
+ true
+ /bin/echo -n [....] 
[....] + [ -z elasticsearch.service ]
+ echo -n Restarting elasticsearch (via systemctl): elasticsearch.service
Restarting elasticsearch (via systemctl): elasticsearch.service+ log_daemon_msg_post Restarting elasticsearch (via systemctl) elasticsearch.service
+ :
+ /bin/systemctl restart elasticsearch.service
Warning: elasticsearch.service changed on disk. Run 'systemctl daemon-reload' to reload units.
+ rc=0
+ [ restart = status ]
+ log_end_msg 0
+ [ -z 0 ]
+ local retval
+ 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 ]
+ true
+ true
+ /usr/bin/tput setaf 1
+ RED=
+ /usr/bin/tput setaf 2
+ GREEN=
+ /usr/bin/tput setaf 3
+ YELLOW=
+ /usr/bin/tput op
+ NORMAL=
+ /usr/bin/tput civis
+ /usr/bin/tput sc
+ /usr/bin/tput hpa 0
+ [ 0 -eq 0 ]
+ /bin/echo -ne [ ok 
[ ok + /usr/bin/tput rc
+ /usr/bin/tput cnorm
+ 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 ]
+ true
+ true
+ /usr/bin/tput setaf 1
+ RED=
+ /usr/bin/tput setaf 3
+ YELLOW=
+ /usr/bin/tput op
+ NORMAL=
+ [ 0 -eq 0 ]
+ echo .
.
+ log_end_msg_post 0
+ :
+ return 0
+ return 0
+ exit 0

Been trying whole day and still cant figure this out.
Also "ps -A" shows no elasticsearch process. Please help.

More info:
I tried

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

/
It gives:


    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] password for sid: 
    sid@sid-laptop:/etc/init.d$ {1.6.2}: pid Failed ...
    - FileNotFoundException[/var/run/elasticsearch.pid (Permission denied)]
    java.io.FileNotFoundException: /var/run/elasticsearch.pid (Permission denied)
        at java.io.FileOutputStream.open0(Native Method)
        at java.io.FileOutputStream.open(FileOutputStream.java:270)
        at java.io.FileOutputStream.(FileOutputStream.java:213)
        at java.io.FileOutputStream.(FileOutputStream.java:162)
        at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:194)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32

解决方案

Ubuntu don't allow other users than admins to write to /var/run and this happen for good reasons.

Has you can notice elasticsearch is launched by a "elasticsearch" user that elasticsearch creates on install:

sudo -u elasticsearch....

So instead of change /var/run permissions to all users or try to give admin permissions to elasticsearch user i believe the best solution is created a new folder inside /var/run folder

sudo mkdir /var/run/elasticsearch/

and give elasticsearch user permissions to it

sudo chown elasticsearch:elasticsearch /var/run/elasticsearch 

After you need to change elasticsearch init script to write the pid file for this new folder

sudo vim /etc/init.d/elasticsearch 

updating the property PID_FILE to

PID_FILE=/var/run/elasticsearch/$NAME.pid

This has worked for me. I hope it works for you to ;)

这篇关于在ubuntu 15.10中,elasticsearch无法启动服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆