在本地虚拟机(CentOS 7)中进行 elasticsearch 学习和测试的时候,
启动 elasticsearch 进程是一个需要等待的过程,
和大家分享一份 elasticsearch 自启动脚本,内容如下:
#!/bin/bash
# chkconfig: - 59 75
# description: elasticsearch daemon.
ES="elasticsearch"
ES_HOME="/usr/local/elasticsearch-7.6.2"
ES_USER="elasticsearch"
EXEC="${ES_HOME}/bin/elasticsearch"
PID_FILE="${ES_HOME}/pid"
isEsRunning () {
if [ -f $PID_FILE ]
then
PID=$(cat $PID_FILE)
PID_EXPECT=$(ps -ef | grep $ES | grep -v grep | awk '$2 == $PID {print $2}')
if [ "" = "$PID_EXPECT" ]
then
return 0
else
return 1
fi
else
return 0
fi
}
case "$1" in
start)
isEsRunning
if [ 1 == $? ]
then
echo "$ES is already running!"
else
echo "starting $ES..."
su ${ES_USER}<<es
$EXEC -d -p $PID_FILE > /dev/null 2>&1
exit
es
fi
;;
stop)
if [ ! -r $PID_FILE ]
then
echo "$ES is not running!"
else
echo "stopping..."
PID=$(cat $PID_FILE)
kill -9 $PID
rm -f $PID_FILE
echo "$ES stopped"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "please use start,stop,restart as the first argument."
;;
esac
- 脚本名为 elasticsearch 并放在 /etc/init.d/ 目录下。
- 使用时需修改变量
ES_HOME(表 elasticsearch 安装目录) 和
ES_USER(启动 elasticsearch 服务的非 root 用户) 的值。 - 添加自启动命令为:
chkconfig --add elasticsearch
chkconfig elasticsearch on
chkconfig: - 59 75一行中的- 59 75分别代表该服务不在任何系统运行级别下启动、
启动的优先级和关闭的优先级,对应以下目录中的软链接:

其中,以字符 K 开头的软链接表示系统会向脚本传递 stop 参数(表关闭服务),
以字符 S 开头的软链接系统会向脚本传递 start 参数(表开启服务),
紧随字符 K 或 S 之后的数字对应脚本中 chkconfig 行定义的关闭和启动顺序数值。
1698



被折叠的 条评论
为什么被折叠?



