天天看点

pssh批量执行启动tomcat报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题描述问题分析解决问题

文章目录

  • 问题描述
  • 问题分析
  • 解决问题

问题描述

我这边一共4台主机,4台主机tomca路径一致。我想想通过pssh命令工具直接将4台主机的tomcat启动,命令如下:

异常如下:

pssh批量执行启动tomcat报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题描述问题分析解决问题

异常问题:

hadoop-master: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
           

问题分析

首先检查环境变量,发现我们已经配置了

[[email protected] ~]# echo $JAVA_HOME
/usr/local/jdk/jdk1.8.0_261
           

怀疑是通过pssh方式执行命令,不能使用全局的环境变量

解决问题

如果不能设置全局环境变量,那只需要在tomcat启动的时候设置环境变量即可,我们使用一台主机hadoop-slave1做测试

首先进入tomcat的bin目录,并且编辑

[[email protected] bin]# cd /usr/local/tomcat/apache-tomcat-8.5.57/bin
[[email protected] bin]# vim catalina.sh 
           

在文件的第二行添加进我们的环境变量

#!/bin/sh
export JAVA_HOME="/usr/local/jdk/jdk1.8.0_261"
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
           

然后wq保存退出。再执行我们的pssh命令:

pssh批量执行启动tomcat报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题描述问题分析解决问题

发现执行成功了,再登录hadoop-slave1中验证:

[[email protected] bin]# ps -ef|grep tomcat|grep -v grep
root       9820      1  0 18:13 ?        00:00:04 /usr/local/jdk/jdk1.8.0_261/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/apache-tomcat-8.5.57/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/apache-tomcat-8.5.57/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-8.5.57/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/apache-tomcat-8.5.57 -Dcatalina.home=/usr/local/tomcat/apache-tomcat-8.5.57 -Djava.io.tmpdir=/usr/local/tomcat/apache-tomcat-8.5.57/temp org.apache.catalina.startup.Bootstrap start
           

发现tomcat已经启动成功了。按照此方式,把其他服务器的tomcat也做同样的修改,就可解决问题了。

最终目标:

[[email protected] pssh]# pssh -h hosts.text /usr/local/tomcat/apache-tomcat-8.5.57/bin/startup.sh
[1] 18:37:04 [SUCCESS] hadoop-slave2
[2] 18:37:04 [SUCCESS] hadoop-master
[3] 18:37:04 [SUCCESS] hadoop-slave1
[4] 18:37:04 [SUCCESS] hadoop-slave3
           
pssh批量执行启动tomcat报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题描述问题分析解决问题

继续阅读