具体情况
这个错误一般是ubuntu中使用 apt-get install 安装的elastic search 有可能出现这种问题
现象是,直接运行 /usr/share/elasticsearch/bin/elasticsearch是可以正常启动的,但是systemctl start elasticsearch.service 无效,/var/log/elasticsearch下没有任何log
原因
ubuntu 的apt 库打包的运行配置文件是有问题的,
/etc/default/elasticsearch
# Run Elasticsearch as this user ID and group ID
# ES_USER=elasticsearch
# ES_GROUP=elasticsearch
解 1
- 一个方法是,把 elasticsearch 改为root (不推荐,会有安全问题)
/etc/default/elasticsearch
# Start Elasticsearch automatically
# START_DAEMON=true
# Run Elasticsearch as this user ID and group ID
ES_USER=root
ES_GROUP=root
- 另外一个方法是,把
/usr/share/elasticsearch/这个目录的owner 和 group改成elasticsearch
sudo chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/
由于默认user和 group 都是 elasticsearch ,所以不用改 /etc/default/elasticsearch
验证
curl localhost:9200
相关
/etc/default/elasticsearch 文件中
# Start Elasticsearch automatically
START_DAEMON=true #这句看起来像是开机启动,所以我自己的情况改不改影响不太大
# Heap Size (defaults to 256m min, 1g max)
ES_HEAP_SIZE=2g # 如果机器内存只有2g,建议改成1g吧。。。喂喂,上面的注释明明说最大1g
解决Ubuntu系统下使用apt-get安装的Elasticsearch服务无法通过systemctl启动的问题。可通过修改所有者为root或更改为elasticsearch用户。
433

被折叠的 条评论
为什么被折叠?



