要在 Linux 系统下设置 Elasticsearch 开机自启,您可以使用系统服务管理工具,如 Systemd 或 SysVinit。以下分别介绍这两种方法:
使用 Systemd
对于大多数现代 Linux 发行版(如 Ubuntu 16.04+、CentOS 7+ 等),Systemd 是默认的服务管理工具。
1. 创建 systemd 服务单元文件
在 /etc/systemd/system
目录下创建一个名为 elasticsearch.service
的文件,内容如下:
[Unit]
Description=Elasticsearch
Documentation=https://www.elastic.co/products/elasticsearch
Wants=network-online.target
After=network-online.target
[Service]
User=elasticsearch
Group=elasticsearch
ExecStart=/usr/share/elasticsearch/bin/elasticsearch
Restart=always
EnvironmentFile=/etc/default/elasticsearch
LimitNOFILE=65536
LimitMEMLOCK=infinity
LimitNPROC=4096
[Install]
WantedBy=multi-user.target
请确保 User
和 Group
设置为实际运行 Elasticsearch 的用户和组。ExecStart
指向 Elasticsearch 的可执行文件路径。EnvironmentFile
指向包含环境变量的文件(如 /etc/default/elasticsearch
),如果有需要的话。
2. 设置环境变量(可选)
如果需要在启动时设置环境变量,可以在 /etc/default/elasticsearch
文件中添加相应的键值对。例如:
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
ES_JAVA_OPTS="-Xms1g -Xmx1g"
3. 启动并启用服务
- 启动 Elasticsearch 服务:
sudo systemctl start elasticsearch
- 查看服务状态:
sudo systemctl status elasticsearch
- 设置开机自启:
sudo systemctl enable elasticsearch
4. 日志查看
查看 Elasticsearch 服务的日志:
journalctl -u elasticsearch -f
使用 SysVinit
对于仍在使用 SysVinit 的较早版本的 Linux 发行版(如 CentOS 6),可以创建一个启动脚本。
1. 创建启动脚本
在 /etc/init.d
目录下创建一个名为 elasticsearch
的脚本,内容如下:
#!/bin/bash
# Elasticsearch environment variables
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export ES_HOME=/usr/share/elasticsearch
export ES_PATH_CONF=/etc/elasticsearch
# Start the service
case "$1" in
start)
echo "Starting Elasticsearch..."
su -c "/usr/share/elasticsearch/bin/elasticsearch" elasticsearch
;;
stop)
echo "Stopping Elasticsearch..."
pkill -f 'elasticsearch'
;;
restart|force-reload)
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}" >&2
exit 3
;;
esac
exit 0
请根据实际情况调整 JAVA_HOME
、ES_HOME
和 ES_PATH_CONF
的值。
2. 设置脚本可执行
sudo chmod +x /etc/init.d/elasticsearch
3. 启动并启用服务
- 启动 Elasticsearch 服务:
sudo service elasticsearch start
- 查看服务状态:
sudo service elasticsearch status
- 设置开机自启:
sudo chkconfig --add elasticsearch
sudo chkconfig elasticsearch on
4. 日志查看
查看 Elasticsearch 的日志通常位于 /var/log/elasticsearch/
目录下,例如:
tail -f /var/log/elasticsearch/elasticsearch.log
根据您的 Linux 系统使用 Systemd 还是 SysVinit,按照上述相应步骤操作即可设置 Elasticsearch 开机自启。记得在操作后检查 Elasticsearch 服务是否正常启动,并根据需要调整日志级别和输出位置。