如何在 Ubuntu 15.04 上 运行 Elasticsearch 作为服务

How to run Elasticsearch as a service on Ubuntu 15.04

我正在尝试设置 Elasticsearch。

运行在 Ubuntu 14.10 上一切正常,但是当我将 OS 升级到 Ubuntu 15.04 时,它总是无法将 Elasticsearch 作为服务启动。 (但我仍然可以直接通过命令运行它:sudo /usr/share/elasticsearch/bin/elasticsearch -Des.default.config=...

日志显示 elasticsearch 找不到任何可执行 java 二进制文件。

systemd[1]: Starting Starts and stops a single elasticsearch instance on this system...
sudo[4906]: pam_unix(sudo:session): session closed for user root
elasticsearch[4912]: Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME...
systemd[1]: elasticsearch.service: main process exited, code=exited, status=1/FAILURE
systemd[1]: Unit elasticsearch.service entered failed state.
systemd[1]: elasticsearch.service failed.

我认为环境变量可能因用户而异,所以我尝试在 /etc/environment/etc/default/elasticsearch 中添加 JAVA_HOME 但它没有用。

所以有什么想法可能是什么问题吗?

最有可能的区别是 Ubuntu 15.04 使用在不同上下文中运行服务的 systemd。

例如看一下https://serverfault.com/questions/413397/how-to-set-environment-variable-in-systemd-service for how to set up environment variables for systemd. You should set them in an EnvironmentFile, see https://wiki.ubuntu.com/SystemdForUpstartUsers