我正在尝试在我的系统上设置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
答案 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
这对我有用。我希望它适合你;)