转自:https://www.cnblogs.com/jiangzuo/p/8000423.html
最近搭建了一个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=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin
export CLASSPATH=.:
J
A
V
A
H
O
M
E
/
l
i
b
/
d
t
.
j
a
r
:
JAVA_HOME/lib/dt.jar:
JAVAHOME/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