Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

elasticsearch can't start service in ubuntu 15.10

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

like image 360
Swapnil Devesh Avatar asked Feb 05 '16 20:02

Swapnil Devesh


People also ask

How do I install Elasticsearch on Ubuntu?

The Elasticsearch components are not available in Ubuntu’s default package repositories. They can, however, be installed with APT after adding Elastic’s package source list. All of the packages are signed with the Elasticsearch signing key in order to protect your system from package spoofing.

Why did the job for Elasticsearch Service fail?

# service elasticsearch start Job for elasticsearch.service failed because the control process exited with error code.

How to start ElasticSearch for the first time?

These are the minimum settings you can start with in order to use Elasticsearch. Now you can start Elasticsearch for the first time. Start the Elasticsearch service with systemctl.

Can Elasticsearch packages be installed with APT?

They can, however, be installed with APT after adding Elastic’s package source list. All of the packages are signed with the Elasticsearch signing key in order to protect your system from package spoofing. Packages which have been authenticated using the key will be considered trusted by your package manager.


1 Answers

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 ;)

like image 137
Pedro Sequeira Avatar answered Oct 07 '22 01:10

Pedro Sequeira