最近搭建了一個elasticsearch服務,其中機器重啟而ES服務沒有重啟是問題,就有下面的腳本
#!/bin/sh #chkconfig: 2345 80 05 #description: es export JAVA_HOME=/path/to/jdk1.8.0_131 export JAVA_BIN=/path/to/jdk1.8.0_131/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 case $1 in start) #下面的“<<!”是切換用戶后,待執行的命令,執行完后使用“!”來進行結束 su es<<! cd /home/es/elasticsearch-5.5.1 ./bin/elasticsearch -d exit ! #上面的“!”是以上面的對應起來,並且頂格放置,這是語法 echo "es startup" #將該行替換成你自己的服務啟動命令 ;; stop) es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`#注意這個號“`” kill -9 $es_pid echo "es stopup" #將該行替換成你自己的服務啟動命令 ;; restart) es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'` #“grep -v”過濾掉本身的執行命令,獲取准確的pid kill -9 $es_pid echo "es stopup" #將該行替換成你自己的服務啟動命令 su es<<! cd /home/es/elasticsearch-5.5.1 ./bin/elasticsearch -d ! echo "es startup" #將該行替換成你自己的服務啟動命令 ;; *) echo "start|stop|restart" #將該行替換成你自己的服務啟動命令 ;; esac
保存為es,放在/etc/init.d下面,並執行下面命令賦予執行權限
chmod +x es
最后在/etc/init.d下執行
chkconfig -add es
