本文共 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/