博客
关于我
systemd 启动 logstash 报错 找不到 JAVA_HOME
阅读量:432 次
发布时间: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/

你可能感兴趣的文章
贝叶斯过滤算法
查看>>
微软针对Access提供了免费的SQL Server移植工具——SSMA
查看>>
使用WinSCP软件在windows和Linux中进行文件传输
查看>>
SQL Server Performance Dashboard Reports
查看>>
VS.Net 2005 Design-Time Integration
查看>>
AI Boot Camp 分享之 ML.NET 机器学习指南
查看>>
2020 中国 .NET 开发者调查问卷
查看>>
Mongo2Go 介绍
查看>>
使用密码记录工具keepass来保存密码
查看>>
腾讯云 安装mono
查看>>
开发便于运维的Windows服务
查看>>
.Net 跨平台可移植类库PCL可用于任何平台包括Mono
查看>>
NEsper Nuget包
查看>>
智能路由器操作系统OpenWrt
查看>>
多种坐标系之间的转换 Proj.NET和DotSpatial
查看>>
资深人士剖析微软开源.NET事件:战略重心已经从PC转移到云端
查看>>
参加MVP OpenDay 和2015 MVP Community Camp社区大课堂
查看>>
ASP.NET Web API 2.1支持Binary JSON(Bson)
查看>>
.NET开源进行时:消除误解、努力前行(本文首发于《程序员》2015第10A期的原始版本)
查看>>
Castle Core 4.0.0 alpha001发布
查看>>