WARNING: Version 1.3 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Running As a Service on Linux
editRunning As a Service on Linux
editIn order to run elasticsearch as a service on your operating system, the provided packages try to make it as easy as possible for you to start and stop elasticsearch during reboot and upgrades.
Linux
editCurrently our build automatically creates a Debian package and an RPM package with these directory structures, which are available on the download page. The package itself does not have any dependencies, but you have to make sure that you installed a JDK.
Each package features a configuration file, which allows you to set the following parameters:
|
The user to run as, defaults to |
|
The group to run as, defaults to |
|
The heap size to start with |
|
The size of the new generation heap |
|
The maximum size of the direct memory |
|
Maximum number of open files, defaults to |
|
Maximum locked memory size. Set to "unlimited" if you use the bootstrap.mlockall option in elasticsearch.yml. You must also set ES_HEAP_SIZE. |
|
Maximum number of memory map areas a process may have. If you use |
|
Log directory, defaults to |
|
Data directory, defaults to |
|
Work directory, defaults to |
|
Configuration file directory (which needs to include |
|
Path to configuration file, defaults to |
|
Any additional java options you may want to apply. This may be useful, if you need to set the |
|
Configure restart on package upgrade, defaults to |
Debian/Ubuntu
editThe debian package ships with everything you need as it uses standard debian tools like update update-rc.d
to define the runlevels it runs on. The init script is placed at /etc/init.d/elasticsearch
as you would expect it. The configuration file is placed at /etc/default/elasticsearch
.
The debian package does not start up the service by default. The reason for this is to prevent the instance to accidentally join a cluster, without being configured appropriately. After installing using dpkg -i
you can use the following commands to ensure, that elasticsearch starts when the system is booted and then start up elasticsearch:
sudo update-rc.d elasticsearch defaults 95 10 sudo /etc/init.d/elasticsearch start
Installing the Oracle JDK
editThe usual recommendation is to run the Oracle JDK with elasticsearch. However, Ubuntu and Debian only ship with the OpenJDK due to license issues. You can easily run the Oracle installer package though. In case you are missing the add-apt-repository
command under Debian GNU/Linux, make sure have at least Debian Wheezy and the package python-software-properties
installed
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-installer java -version
The last command should verify a successful installation of the Oracle JDK.
RPM based distributions
editUsing chkconfig
editSome RPM based distributions are using chkconfig
to enable and disable services. The init script is located at /etc/init.d/elasticsearch
, where as the configuration file is placed at /etc/sysconfig/elasticsearch
. Like the debian package the RPM package is not started by default after installation, you have to do this manually by entering the following commands
sudo /sbin/chkconfig --add elasticsearch sudo service elasticsearch start
Using systemd
editDistributions like SUSE do not use the chkconfig
tool to register services, but rather systemd
and its command /bin/systemctl
to start and stop services (at least in newer versions, otherwise use the chkconfig
commands above). The configuration file is also placed at /etc/sysconfig/elasticsearch
. After installing the RPM, you have to change the systemd configuration and then start up elasticsearch
sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable elasticsearch.service sudo /bin/systemctl start elasticsearch.service
Also note that changing the MAX_MAP_COUNT
setting in /etc/sysconfig/elasticsearch
does not have any effect, you will have to change it in /usr/lib/sysctl.d/elasticsearch.conf
in order to have it applied at startup.