psshバッチ実行がtomcatエラーを開始します:JAVA_HOMEまたはJRE_HOME環境変数が定義されていません

記事ディレクトリ

問題の説明

私の側には4つのホストがあり、4つのホストは同じtomcaパスを持っています。psshコマンドツールを使用して4つのホストのTomcatを直接起動したいのですが、コマンドは次のとおりです。

[root@hadoop-master pssh]# pssh -P -h hosts.text /usr/local/tomcat/apache-tomcat-8.5.57/bin/startup.sh

例外は次のとおりです。
異常な問題

異常な問題:

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

問題分析

最初に環境変数を確認し、構成済みであることを確認します

[root@hadoop-master ~]# echo $JAVA_HOME
/usr/local/jdk/jdk1.8.0_261

コマンドはpsshを介して実行され、グローバル環境変数は使用できないことが疑われます

問題を解く

グローバル環境変数を設定できない場合は、tomcatの起動時に環境変数を設定するだけで済みます。テストにはホストhadoop-slave1を使用します。
まず、tomcatのbinディレクトリに移動して編集します

[root@hadoop-slave1 bin]# cd /usr/local/tomcat/apache-tomcat-8.5.57/bin
[root@hadoop-slave1 bin]# vim catalina.sh 

ファイルの2行目に環境変数を追加します

#!/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コマンドを実行します。

[root@hadoop-master pssh]# pssh -P -h hosts.text /usr/local/tomcat/apache-tomcat-8.5.57/bin/startup.sh

実行成功
実行が成功したことがわかったら、hadoop-slave1にログインして確認します。

[root@hadoop-slave1 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に同じ変更を加えることで問題を解決できます。
最終的な目標:

[root@hadoop-master 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

成功

おすすめ

転載: blog.csdn.net/u011047968/article/details/108107236