弹性搜索系统服务失败

elasticsearch systemd service failing

我刚刚在 linux 14.10 上切换到 systemd,现在我的 elasticsearch 服务无法正常启动

elasticsearch.service             loaded failed failed  

a systemctl status 给我以下内容:

elasticsearch.service - Starts and stops a single elasticsearch instance on this system
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled)
   Active: failed (Result: exit-code) since Mon 2015-04-13 23:23:54 CEST; 4s ago
     Docs: http://www.elasticsearch.org
  Process: 1227 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -Des.default.config=$CONF_FILE -Des.default.path.home=$ES_HOME -Des.default.path.logs=$LOG_DIR -Des.default.path.data=$DATA_DIR -Des.default.path.work=$WORK_DIR -Des.default.path.conf=$CONF_DIR (code=exited, status=3)
 Main PID: 1227 (code=exited, status=3)

我没有管理服务方面的经验,而且我是 systemd 的新手,所以我不知道如何解决这个问题。

有人能指出我正确的方向吗? 谢谢!

好吧,我通过删除 elasticsearch.service 文件解决了这个问题,禁用该服务并重新安装:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
sudo /bin/systemctl start elasticsearch.service

一种解决问题的方法是运行以下类似于systemd执行的命令。通过这种方式,您将很快发现问题。对我来说是 java 路径。

sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch \ -Des.pidfile=/var/run/elasticsearch/elasticsearch.pid \ -Des.default.path.home=/usr/share/elasticsearch \ -Des.default.path.logs=/var/log/elasticsearch \ -Des.default.path.data=/var/lib/elasticsearch \ -Des.default.path.conf=/etc/elasticsearch

which: no java in (/usr/sbin:/usr/bin:/sbin:/bin) Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME