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