elasticsearch无法在ubuntu 15.10中启动服务

时间:2016-02-05 20:01:13

标签: elasticsearch

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

/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=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

一整天都在尝试,但仍然无法弄清楚这一点 “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] 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

1 个答案:

答案 0 :(得分:13)

Ubuntu不允许管理员以外的其他用户写入/ var / run,这种情况有充分理由。

您是否注意到elasticsearch是由elasticsearch在安装时创建的“elasticsearch”用户启动的:

  

sudo -u elasticsearch ....

因此,不是为所有用户更改/ var / run权限或尝试向elasticsearch用户授予管理员权限,我相信最好的解决方案是在/ var / run文件夹中创建一个新文件夹

sudo mkdir /var/run/elasticsearch/

并赋予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

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