最近搭建了一个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
来源:https://www.cnblogs.com/jiangzuo/p/8000423.html