CentOS 7 elasticsearch service 开机自启
常规启动:
[root@localhost elasticsearch-6.3.1]# ./bin/elasticsearch 结果启动报错了 can not run elasticsearch as root 看起来root不允许直接启动。因为这个原因,那我们需要新建一个用户来启动es,具体操作如下:
以root用户来创建新的用户 , groupadd 添加一个用户组
[root@localhost home]# groupadd elk
添加一个用户,-g是在用户组下 -p是密码
[root@localhost home]# useradd elk -g elk -p elk
给用户elk授权
[root@localhost home]# chown -R elk:elk /usr/app/es/ (一定是给es目录授权,不然log也没有权限)
切换到 elk用户
[root@localhost elasticsearch]# su elk
设置服务自启:
方法一:在/etc/systemd/system目录下创建elasticsearch.service文件
[Unit]
Description=elasticsearch
[Service]
User=elasticsearch
LimitNOFILE=100000
LimitNPROC=100000
ExecStart=/usr/appl/es/elasticsearch/bin/elasticsearch
[Install]
WantedBy=multi-user.target
方法二:在/etc/init.d目录下创建elasticsearch文件
#!/bin/sh
#chkconfig: 2345 80 05
#description: elasticsearch
export JAVA_HOME=/usr/java/jdk1.8.0_112
export JAVA_BIN=/usr/java/jdk1.8.0_112/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 zhangxing<<!
cd /home/lyt/dev-repo/elk5/elasticsearch-5.6.9
./bin/elasticsearch -d
!
echo “elasticsearch startup”
;;
stop)
es_pid=ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'
kill -9 $es_pid
echo “elasticsearch stopped”
;;
restart)
es_pid=ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'
kill -9 $es_pid
echo “elasticsearch stopped”
su zhangxing<<!
cd /home/lyt/dev-repo/elk5/elasticsearch-5.6.9
./bin/elasticsearch -d
!
echo “elasticsearch startup”
;;
*)
echo “start|stop|restart”
;;
esac
exit $?
修改你自定义的elasticsearch安装目录路径以及JDK的安装目录,还有非root账户的配置
②保存退出,赋予该脚本执行权限
chmod +x elasticsearch
③将elasticsearch添加到开机启动任务
chkconfig -add elasticsearch