我已经安装了 elasticsearch 。 这是我目前的运行方式。
cd /elasticsearch-6.3.1/bin
./elasticsearch
它运行正常。但是,我想将此程序作为服务运行。比如,我想这样运行它,
sudo service elasticsearch restart
它应该运行 elasticsearch。我尝试在 中创建一个脚本/etc/init.d
,但它不起作用。这就是我所做的,
cd /etc/init.d
sudo vim elasticsearch
这是该文件的内容,
cd /elasticsearch-6.3.1/bin
./elasticsearch
实现这一目标的推荐方法是什么?
答案1
创建一个 upstart 脚本,如下所示
# ElasticSearch upstart script
description "ElasticSearch service"
start on (net-device-up
and local-filesystems
and runlevel [2345])
stop on runlevel [016]
respawn
respawn limit 10 30
# NB: Upstart scripts do not respect
# /etc/security/limits.conf, so the open-file limits
# settings need to be applied here.
limit nofile 32000 32000
setuid elasticsearch
setgid elasticsearch
exec /path/to/elasticsearch/bin/elasticsearch -f -Des.default.config=/path/to/config/elasticsearch.yml -Des.default.path.home=/usr/share/elasticsearch/ -Des.default.path.logs=/var/log/elasticsearch/ -Des.default.path.data=/var/lib/elasticsearch/ -Des.default.path.work=/tmp/elasticsearch -Des.default.path.conf=/path/to/config/
elasticsearch.conf
根据您的情况,将路径替换为绝对路径。将其保存为/etc/init/
还要注意,最好以自己的用户身份运行 elasticsearch(因此有 setuid 和 setgid 行)