原因是 elasticsearch 为了安全,不允许使用 root 用户启动,由于 ElasticSearch 可以接收用户输入的脚本并且执行,为了系统安全考虑,需要创建一个单独的用户用来运行 ElasticSearch。

创建用户组和用户

可以自定义一个用户及组名,最好简短好输入

groupadd elsearch
useradd elsearch -g elsearch -p codingwhy

修改 elasticsearch 文件夹所属用户及组

CentOS 默认用户为 root,通过 wget 下载并使用 tar -zxvf 解压得到文件夹 elasticsearch-7.16.2,此时用户及组都为 root,需要改为专属的用户及组。

chown -R elsearch:elsearch /path/to/elasticsearch-7.16.2

切换用户执行 bin/elasticsearch

su elsearch
/path/to/elasticsearch-7.16.2/bin/elasticsearch

默认是前台启动,后台启动需要增加参数 -d,表示以守护进程执行。

转自:elasticsearch启动报错:can not run elasticsearch as root