elasticsearch开机自启配置说明-开机自动打开文件夹

# elasticsearch开机自启配置说明

## 注意:涉及到添加用户,可以看系统的用户列表

```查看用户信息

vim /etc/passwd

```

我有个elasticsearch用户 我想让它有读写 jdk文件夹的权限 应该切换到root账户下 用什么命令赋予elasticsearch权限

```

chown -R elasticsearch:elasticsearch /usr/local/java/jdk

```

检查当前用户名称

```

who

```

#### 1.卸载系统自带的OpenJDK以及相关的java文件

①在命令窗口键入 :

```

java -version

```

可以看到系统自带openjdk版本信息

②在命令窗口键入:

```

rpm -qa | grep java

```

命令说明:

rpm 管理套件

-qa 使用询问模式,查询所有套件

grep 查找文件里符合条件的字符串

java 查找包含java字符串的文件

以上文件中:

下面这几个可以删除

```

java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64

java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64

java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64

java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64

```

noarch文件可以不用删除

```

python-javapackages-3.4.1-11.el7.noarch

tzdata-java-2016g-2.el7.noarch

javapackages-tools-3.4.1-11.el7.noarch

```

③在命令窗口键入 :

```

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64

```

但是会出错,因为在普通用户sxd用户下,并没有操作这几个文件的权限。

解决:

​在命令窗口键入:

```

su root

```

进入root用户,可以有权限操作这几个文件。

完整的删除文件的命令,在命令窗口键入:

```

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64

```

命令介绍:

rpm 管理套件

-e 删除指定的套件

--nodeps 不验证套件档的相互关联性

④检查是否已经删除成功

在命令窗口键入:

```

java -version

```

代表删除成功了。

⑤如果还没有删除,则用yum -y remove去删除他们

#### 2.下载最新稳定JDK

**【注意】:JDK安装在哪个用户下,就是给哪个用户使用**

①下载地址为

当前最新版本下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

历史版本下载地址: http://www.oracle.com/technetwork/java/javase/archive-139210.html

③下载完成后,将JDK压缩包 复制一份到/usr/local/src/作备份

键入命令:

```

cp jdk-8u181-linux-x64.tar.gz /usr/local/src/

```

命令说明:

cp 复制文件或目录

jdk-8u181-linux-x64.tar.gz 文件名

/user/local/src 要复制的目标目录

修改文件或者目录权限的先关操作说明:http://www.cnblogs.com/sxdcgaq8080/p/7498906.html

④修改JDK压缩文件的权限,然后再进行复制操作

在命令行键入:

```

chmod 755 jdk-8u181-linux-x64.tar.gz

```

之后在键入:

```

ls -al

```

可以看到效果:

文件名已经显示为绿色,行首也可以实际的看到权限 更改为:-rwxr-xr-x

注意:如果上面cp出现权限不够的问题,进行下面这一步。

⑤最终进入root用户下,进行复制操作

键入:

```

cp jdk-8u181-linux-x64.tar.gz /usr/local/src/

```

#### 3.解压JDK

①将/home/centos/jdk-8u181-linux-x64.tar.gz文件拷贝一份到/usr/local/java

命令行键入:

```

cp jdk-8u181-linux-x64.tar.gz /usr/local/java

```

在命令窗口键入:

```

tar jdk-8u181-linux-x64.tar.gz

```

命令介绍:

tar 备份文件

-zxvf

-z 通过gzip指令处理备份文件

-x 从备份文件中还原文件

-v 显示指令执行过程

-f 指定备份文件

jdk-8u181-linux-x64.tar.gz 文件名

③删除JDK压缩包

在命令行键入:

```

rm -f jdk-8u181-linux-x64.tar.gz

```

命令解释:

rm 删除文件或目录

-f 强制删除文件或目录

#### 4.配置JDK环境变量

①编辑全局变量

在命令行键入:

```

vim /etc/profile

```

命令说明:

vim 文本编辑

/etc/profile 全局变量文件进入文本编辑状态下,光标走到文件最后一行,键盘按下:

```

i

```

进入插入状态:

在文本的最后一行粘贴如下:

注意JAVA_HOME=/usr/java/jdk-8u181-linux-x64 就是你自己的目录

```

# 配置环境变量

#java environment

#JAVA_HOME=/usr/java/jdk1.8.0_181

#JRE_HOME=$JAVA_HOME/jre

#PATH=$PATH:$JAVA_HOME/bin:/sbin:/usr/bin:/usr/sbin

#CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#export JAVA_HOME

#export JRE_HOME

#export PATH

#export CLASSPATH

```

【注】:CentOS6上面的是JAVAHOME,CentOS7是{JAVA_HOME}

键盘:

```退出编辑模式

ESC

shift+q

```

键盘:

```

qw!

```

写入并强制退出。

如果不管用可以键盘:

```

x

```

一个意思,都是保存并退出的意思。

-----------------------------------------------------------------------------------------------------------------------------------

##### 注意:这一步可以设置也可以不用设置

我没有用这一步

#### 5.让刚刚设置的环境变量生效并检查是否安装成功

①让刚刚设置的环境变量生效

键入:

```

source /etc/profile

```

②检查是否配置成功

键入:

```

java -version

```

返回:

java version "1.8.0_181"

Java(TM) SE Runtime Environment (build 1.8.0_181-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

安装成功!

如果没有返回上面的结果:说明java未配置到/usr/bin目录下

解决方法:添加软连接

```

ln -s /usr/local/java/jdk1.8.0_181/bin/java /usr/bin/java

```

再次执行java -version ,就没有问题了

## 接下来正式开始配置elasticsearch开机自启的功能

### 一、将解压的jdk包迁移到/usr/local/java/目录下

```

mv jdk1.8.0_181/ /usr/local/java/

```

如果没有Java目录,可以建一个

```

mkdir /usr/local/java

```

elasticsearch开机自启配置说明

### 二、编辑elasticsearch开机自启脚本文件

1.最近搭建了一个elasticsearch服务,其中机器重启而ES服务没有重启是问题,就有下面的脚本

首先,将/etc/init.d目录下的elasticsearch文件备份

```备份elasticsearch开机自启文件

cd /etc/init.d/

mv elasticsearch elasticsearch.backup

```

编辑es开机自启脚本文件

```

vim /etc/init.d/elasticsearch

```

```

#!/bin/sh

#chkconfig: 2345 80 05

#description: es

export JAVA_HOME=/usr/local/java/jdk1.8.0_181

export JAVA_BIN=/usr/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 elasticsearch<<!

cd /usr/share/elasticsearch

./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 elasticsearch<<!

cd /usr/share/elasticsearch

./bin/elasticsearch -d

!

echo "es startup" #将该行替换成你自己的服务启动命令

;;

*)

echo "start|stop|restart" #将该行替换成你自己的服务启动命令

;;

esac

```

保存退出

保存为elasticsearch,放在/etc/init.d下面,并执行下面命令赋予执行权限

```给文件添加可读可写可执行权限

chmod 777 elasticsearch

```

最后在/etc/init.d下执行

```

chkconfig --add elasticsearch

```

将elasticsearch添加到服务器。

chkconfig简单详解连接:https://blog.csdn.net/lanyang123456/article/details/54695567

2.将/usr/share下的elasticsearch文件更改用户权限,

```

chown -R elasticsearch:elasticsearch /usr/share/elasticsearch

```

原因:elasticsearch一般不能以root用户身份运行,需要切换到普通用户

切换用户:

```

su elasticsearch

```

注意:如果切换不成功

```

vim /etc/passwd

```

```

将:

elasticsearch:x:995:991:elasticsearch user:/home/elasticsearch:/sbin/nologin

改为:

elasticsearch:x:995:991:elasticsearch user:/home/elasticsearch/bin/bash

```

这样在切换用户就能成功了。

在elasticsearch用户下后台运行elasticsearch看是否成功

```

cd /usr/share/elasticsearch

./bin/elasticsearch -d

```

elasticsearch开机自启配置说明

##### 注意:现在因为添加了自启动配置文件,所以原来在root用户下的启动命令发生改变

```elasticsearch启动,停止,重启命令

service elasticsearch start/stop/restart

```

该命令操作的是/etc/init.d目录下的elasticsearch文件,其控制的是安装目录下的elasticsearch启动,现在init.d目录下的elasticsearch文件被我们用自己的elasticsearch文件所代替,在使用

```

service elasticsearch start/stop/restart

```

该命令时,它会首先找到/etc/elasticsearch文件,会报错

而只能用下面的命令启动不会报错:

```

systemctl /start/stop/status elasticsearch

```

该命令操作的是配置文件下的elasticsearch文件,即:/etc/elasticsearch/elasticsearch.yml

如果elasticsearch没有启动起来,报以下错误:

```

ERROR: [1] bootstrap checks failed

[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

```

解决方法:

```

vim /etc/security/limits.conf 修改或新增

```

```

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

备注:* 代表Linux所有用户名称(比如 hadoop)

后面设置的nproc实际上设置多线程,以防止再报用户最大可创建线程数太小的故障。

保存、退出、重新登录才可生效

重新使用SSH登录,再次启动elasticsearch即可。

```

如果输入以下命令:

```

systemctl status elasticsearch

```

显示elasticsearch状态为dead,elasticsearch.service为disabled禁用状态,说明elasticsearch被禁止开机自启。执行以下命令:

```

systemctl enable elasticsearch.service

```

相关服务器开机自启知识参考链接:https://blog.csdn.net/qq_34829953/article/details/73752719

##### 另外

还要更改/etc/sysconfig/elasticsearch文件

```

vim /etc/sysconfig/elasticsearch

```

```

将:

#JAVA_HOME=

改为:

JAVA_HOME=/usr/local/java/jdk1.8.0_181

```

elasticsearch开机自启配置说明

推荐阅读