文章目录
前言
国庆放假后回公司,发现ES服务竟然挂了,导致出现服务不可用的问题。幸好是公司内部的自用服务,没造成什么不良影响。最后经过调查发现,是国庆期间公司整栋楼断电维护,导致所有服务器都重启了,而服务器上的ES服务并没有配置开机自启动。
翻看ES官网发现并没有对ES开机自启动做介绍,所以写篇文章补充一下。
这里演示采用chkconfig方式配置开机自启动。其他配置方式可以查看Centos中配置开机自启动的方式汇总
一、先查看当前的开机启动服务
chkconfig --list
chkconfig没有配置elasticsearch服务。
二、在/etc/init.d目录下创建启动文件
cd /etc/init.d
vi elasticsearch
脚本内容如下:
#!/bin/bash
#chkconfig: 2345 63 37
#description: elasticsearch
#processname: elasticsearch-6.2.4
export ES_HOME=/usr/local/elasticsearch-6.2.4
case $1 in
start)
su esuser<<!
cd $ES_HOME
./bin/elasticsearch -d -p pid
exit
!
echo "elasticsearch is started"
;;
stop)
##也可以根据ps命令获取elasticsearch进程的pid
##es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
##kill -9 $es_pid
pid=`cat $ES_HOME/pid`
kill -9 $pid
echo "elasticsearch is stopped"
;;
restart)
pid=`cat $ES_HOME/pid`
kill -9 $pid
echo "elasticsearch is stopped"
sleep 1
su esuser<<!
cd $ES_HOME
./bin/elasticsearch -d -p pid
exit
!
echo "elasticsearch is started"
;;
*)
echo "start|stop|restart"
;;
esac
exit 0
注意⚠️:
1、脚本中自动完成了用户的切换,在esuser用户下启动elasticsearch
2、采用./bin/elasticsearch -d -p pid
命令启动,会在目录下生成pid文件,服务stop时可以直接读取pid文件获取pid。
说明:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。
第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。
第二行对服务进行描述,可以用\ 跨行注释。
#chkconfig: 2345 63 37
指的是指定kibana服务在2、3、4、5的level等级下脚本执行顺序是63,1、6的level等级下脚本执行顺序是37。
三、增加脚本的可执行权限
chmod +x elasticsearch
四、把elasticsearch服务添加到chkconfig列表
chkconfig --add elasticsearch
五、设置elasticsearch服务自启动
chkconfig elasticsearch on //开启开机自动启动
六、查看elasticsearch服务自启动状态
chkconfig --list elasticsearch
如果2~5都是on,就表明会自动启动了
七、服务的启动、停止、重启
//服务启动
service elasticsearch start
//服务停止
service elasticsearch stop
//服务重启
service elasticsearch restart
总结
本文主要介绍了采用chkconfig方式配置elasticsearch服务,实现elasticsearch服务的启动、停止、重启和开机启动等功能。
Linux chkconfig开机启动
最详细的CentOS7设置自定义开机启动服务教程
elasticsearch设置开机自启动