首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在centos 7中作为服务启动elasticsearch?

如何在centos 7中作为服务启动elasticsearch?
EN

Stack Overflow用户
提问于 2016-06-20 04:54:04
回答 1查看 2.9K关注 0票数 2

我已经安装elasticsearch 2.3.3在centos 7,但关闭后,终端elasticsearch插件头自动关闭,但我想继续运行在后台。请给我一个有帮助的答案。

EN

回答 1

Stack Overflow用户

发布于 2016-06-20 06:50:01

你可以用两种方式在后台运行,

代码语言:javascript
复制
1. Nohup 
2. Creating service script and put it in init.d folder

诺胡普

Eg: nohup ./bin/elasticsearch

服务脚本

使用以下脚本,

代码语言:javascript
复制
#!/bin/bash
### BEGIN INIT INFO
# Provides:          Elasticsearch
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Runs elasticsearch daemon
# Description: Runs the elasticsearch daemon as a non-root user
### END INIT INFO

# Process name
NAME=elasticsearch
DESC="Elasticsearch"
PROG="/etc/init.d/elasticsearch"

# Configure location of Elasticsearch bin
ELASTICSEARCH_BIN=/opt/elasticsearch-2.3.0/bin

# PID Info
PID_FOLDER=/var/run/elasticsearch/
PID_FILE=/var/run/elasticsearch/$NAME.pid
LOCK_FILE=/var/lock/subsys/$NAME
PATH=/bin:/usr/bin:/sbin:/usr/sbin:$ELASTICSEARCH_BIN
DAEMON=$ELASTICSEARCH_BIN/$NAME

# Configure logging location
ELASTICSEARCH_LOG=/var/log/elasticsearch.log

# Begin Script
RETVAL=0

if [ `id -u` -ne 0 ]; then
        echo "You need root privileges to run this script"
        exit 1
fi

# Function library
. /etc/init.d/functions

start() {
        echo -n "Starting $DESC : "

        pid=`pidofproc -p $PID_FILE elasticsearch`
        if [ -n "$pid" ] ; then
                echo "Already running."
                exit 0
        else
        # Start Daemon
                if [ ! -d "$PID_FOLDER" ] ; then
                        mkdir $PID_FOLDER
                fi
                daemon --user=$DAEMON_USER --pidfile=$PID_FILE $DAEMON 1>"$ELASTICSEARCH_LOG" 2>&1 &
                sleep 2
                pidofproc node > $PID_FILE
                RETVAL=$?
                [[ $? -eq 0 ]] && success || failure
                echo
                [ $RETVAL = 0 ] && touch $LOCK_FILE
                return $RETVAL
        fi
}

reload()
{
    echo "Reload command is not implemented for this service."
    return $RETVAL
}

stop() {
        echo -n "Stopping $DESC : "
        killproc -p $PID_FILE $DAEMON
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f $PID_FILE $LOCK_FILE
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status -p $PID_FILE $DAEMON
        RETVAL=$?
        ;;
  restart)
        stop
        start
        ;;
  reload)
        reload
        ;;
  *)
        # Invalid Arguments, print the following message.
        echo "Usage: $0 {start|stop|status|restart}" >&2
        exit 2
        ;;
esac

sudo chmod +x /etc/init.d/elasticsearch

sudo更新-rc.d elasticsearch默认值96 9

sudo /etc/init.d/elasticsearch重新启动

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37914831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档