elasticsearch开机启动脚本

最近搭建了一个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

posted @ 2017-12-07 18:14  讲做  阅读(6976)  评论(0编辑  收藏  举报