第一:問題
由於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 【關閉】
設置開機自啓後的樣子:
本文參考文章: