博客
关于我
systemd 启动 logstash 报错 找不到 JAVA_HOME
阅读量:443 次
发布时间:2019-03-06

本文共 1064 字,大约阅读时间需要 3 分钟。

问题

我们通过logstash 的安装包进行安装好了logstash,然后我们通过systemd进行管理启动,我们发现有如下报错的。

Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME.

看这个问题是没有找到 JAVA_HOME的。但是我们是已经配置好了 JAVA_HOME(在 /etc/profile) 的,我们在终端进行echo $JAVA_HOME,是可以获取到信息的。

logstash 的 systemd的配置文件

[Unit]Description=logstash[Service]Type=simpleUser=logstashGroup=logstash# Load env vars from /etc/default/ and /etc/sysconfig/ if they exist.# Prefixing the path with '-' makes it try to load, but if the file doesn't# exist, it continues onward.ExecStart=/home/logstash/bin/logstash "--path.settings" "/home/logstash/config"Restart=alwaysWorkingDirectory=/Nice=19LimitNOFILE=16384[Install]WantedBy=multi-user.target

问题原因

systemd 管理的服务的环境变量是不会去加载 /etc/profile的,我们可以在 service 文件中配置 Environment或者EnvironmentFile 来指定 systemd 管理的每个服务单独的环境变量。

解决办法

方法一

我们在/usr/lib/systemd/system/logstash.service配置的 Service

加上 Environment="JAVA_HOME=/usr/local/java/jdk1.8.0_151",也就是使用 Environment 进行指定环境变量 JAVA_HOME的值。

方法二

logstash/bin/logstash.lib.sh 或者 logstash/bin/logstash 加上个 source /etc/profile.

转载地址:http://gfzfz.baihongyu.com/

你可能感兴趣的文章
nginx + etcd 动态负载均衡实践(一)—— 组件介绍
查看>>
nginx + etcd 动态负载均衡实践(三)—— 基于nginx-upsync-module实现
查看>>
nginx + etcd 动态负载均衡实践(二)—— 组件安装
查看>>
nginx + etcd 动态负载均衡实践(四)—— 基于confd实现
查看>>
Nginx + Spring Boot 实现负载均衡
查看>>
Nginx + Tomcat + SpringBoot 部署项目
查看>>
Nginx + uWSGI + Flask + Vhost
查看>>
Nginx - Header详解
查看>>
Nginx - 反向代理、负载均衡、动静分离、底层原理(案例实战分析)
查看>>
Nginx - 反向代理与负载均衡
查看>>
nginx 1.24.0 安装nginx最新稳定版
查看>>
nginx 301 永久重定向
查看>>
nginx connect 模块安装以及配置
查看>>
nginx css,js合并插件,淘宝nginx合并js,css插件
查看>>
Nginx gateway集群和动态网关
查看>>
Nginx Location配置总结
查看>>
Nginx log文件写入失败?log文件权限设置问题
查看>>
Nginx Lua install
查看>>
nginx net::ERR_ABORTED 403 (Forbidden)
查看>>
Nginx SSL 性能调优
查看>>