在 Ubuntu 中将脚本作为服务运行

在 Ubuntu 中将脚本作为服务运行

我已经安装了 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 行)

相关内容