第一:问题
由于ES早期的版本不是很稳定,偶尔会内存溢出,然后搜索服务就陷入停滞状态,启动服务都要人肉启动,但是有时我并不在电脑旁边,就需要手机让电脑重启,ES开机自启动服务就很有必要,之前设置过,后来没有成功就不管了,好几次发生在晚上之后,服务一停就是几个小时,这个问题就很严重了,所以必须解决掉它;
先说下环境:Centos 6 64位、Elasticsearch 5.3.5 版本
第二:解决问题
一:先查看当前的开机启动服务
[root@iZ23evimvf8Z init.d]# chkconfig --list
我这个是在成功后,重新才来写文章记录的截图:
二:创建es 的系统启动服务文件
【进入到目录】
[root@iZ23evimvf8Z /]# cd /etc/init.d/
【创建es系统启动服务文件】
[root@iZ23evimvf8Z init.d]# vi elasticsearch
三:编写启动脚本
# !/bin/bash
#chkconfig: 345 63 37
#description: elasticsearch
#processname: elasticsearch-5.3.5
#【这个目录是你JAVA_HOME所在文件夹的目录】
export JAVA_HOME=/usr/local/www/zcsjw/jdk1.8.0_172
export JAVA_BIN=/usr/local/www/zcsjw/jdk1.8.0_172/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
export ES_HOME=/usr/local/www/zcsjw/elasticsearch-5.3.5-node1
#【这个目录是你Es所在文件夹的目录】
case $1 in
start)
su es<<! #【es 这个是启动es的账户,如果你的不是这个记得调整】
cd $ES_HOME
./bin/elasticsearch -d
!
echo "elasticsearch is started"
;;
stop)
es_pid=`ps aux|grep elasticsearch-5.3.5`
kill -9 $es_pid
echo "elasticsearch is stopped"
;;
restart)
es_pid=`ps aux|grep elasticsearch-5.3.5`
kill -9 $es_pid
echo "elasticsearch is stopped"
sleep 1
su es<<! #【es 这个是启动es的账户,如果你的不是这个记得调整】
cd $ES_HOME
./bin/elasticsearch -d
!
echo "elasticsearch is started"
;;
*)
echo "start|stop|restart"
;;
esac
exit 0
四:修改文件权限
[root@iZ23evimvf8Z init.d]# chmod 777 elasticsearch
五:添加和删除服务并设置启动方式
[root@iZ23evimvf8Z init.d]# chkconfig --add elasticsearch 【添加系统服务】
[root@iZ23evimvf8Z init.d]# chkconfig --del elasticsearch 【删除系统服务】
六:关闭和启动服务
[root@iZ23evimvf8Z init.d]# service elasticsearch start 【启动】
[root@iZ23evimvf8Z init.d]# service elasticsearch stop 【停止】
[root@iZ23evimvf8Z init.d]# service elasticsearch restart 【重启】
七:设置服务是否开机启动
[root@iZ23evimvf8Z init.d]# chkconfig elasticsearch on 【开启】
[root@iZ23evimvf8Z init.d]# chkconfig elasticsearch off 【关闭】
设置开机自启后的样子:
本文参考文章: