每次启动Elasticsearch都执行Shell脚本太过麻烦,一般产品环境下习惯将Elasticsearch做成系统服务,然后随系统开机而自动启动。
原本Elasticsearch是有个elasticsearch service wrapper插件的,然而遗憾的是它不支持最新版的Elasticsearch5.x,因此有了这篇博客。
修改elasticsearch安装目录下bin目录下的elasticsearch脚本文件,编辑如下:
编写elasticsearch系统服务脚本文件
1.在/etc/init.d目录下新建一个shell脚本文件
cd /etc/init.d
touch es //这里我们将elasticsearch系统服务脚本文件名称命名为es,其实可以随意命名,为了简洁起见,就命名为es
2.编写es脚本文件,编辑内容如下所示:
#!/bin/bash # chkconfig: 2345 10 90 # description: Elasticsearch Service .... ES_HOME=/opt/modules/elasticsearch-5.0.1 EXEC_PATH=$ES_HOME EXEC=elasticsearch DAEMON=$EXEC_PATH/bin/$EXEC PID_FILE=$ES_HOME/pid/es.pid ServiceName='Elasticsearch 5.0' . /etc/rc.d/init.d/functions if [ ! -x $DAEMON ] ; then echo "ERROR: $DAEMON not found" exit 1 fi stop() { echo "Stoping $ServiceName ..." ps aux | grep "$DAEMON" | kill -9 `awk '{print $2}'` >/dev/null 2>&1 rm -f $PID_FILE usleep 100 echo "Shutting down $ServiceName: [ successful ]" } start() { echo "Starting $ServiceName ..." $DAEMON > /dev/null & pidof $EXEC > $PID_FILE usleep 100 echo "Starting $ServiceName: [ successful ]" } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status -p $PID_FILE $DAEMON ;; *) echo "Usage: service $ServiceName {start|stop|restart|status}" exit 1 esac exit $?
3.将elasticsearch服务开启并设置启动级别
chkconfig --level 3 es on
4.检查elasticsearch服务是否设置成功
chkconfig --list es
5.启动elasticsearch服务
service es start
打完收工!