使用supervisor运行elasticsearch

安装 supervisor 参考 supervisor安装

创建并编辑 /etc/supervisord.d/elasticsearch.ini 文件,内容如下:

[program:elasticsearch]
command=/opt/elasticsearch/bin/elasticsearch ; elasticsearch运行的命令
process_name=%(program_name)s
numprocs=1
directory=/opt/elasticsearch/  ;这是 elasticsearch 解压文件,/opt/elasticsearch的owner改为 elasticsearch
autostart=true
autorestart=true
startsecs=10
startretries=5
user=elasticsearch  ;运行用户使用elasticsearch ,需要提前创建
redirect_stderr=false
stdout_logfile=/var/log/supervisor/elasticsearch.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=10
stdout_capture_maxbytes=10MB
stdout_events_enabled=false
stderr_logfile=/var/log/supervisor/elasticsearch_error.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=5
stderr_capture_maxbytes=1MB

重新载入supervisor的配置文件

supervisorctl reload

centos 系列下 supervisor 的使用

安装

yum install -y epel-release
yum install -y supervisor

/etc/supervisord.conf 配置文件如下

[unix_http_server]
file=/var/run/supervisor/supervisor.sock   ; (the path to the socket file)

[inet_http_server]         ; web界面 可以通过浏览器访问管理进程
port=0.0.0.0:60000       ; (ip_address:port specifier, *:port for all iface)
username=username              ; (default is no username (open server))
password=password              ; (default is no password (open server))

[supervisord]
logfile=/var/log/supervisor/supervisord.log  ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=100MB       ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=2          ; (num of main logfile rotation backups;default 10)
loglevel=info               ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false              ; (start in foreground if true;default false)
minfds=65535                 ; (min. avail startup file descriptors;default 1024)
minprocs=65536                ; (min. avail process descriptors;default 200)

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL  for a unix socket

[include] ; 进程单独放在 supervisord.d 里面
files = supervisord.d/*.ini

启动并使用

systemctl start supervisord
systemctl enable supervisord