Java-ganymed プラグイン (JSch でも試しました) を使用して Unix リモート サーバーに接続するための Java コードを作成しています。
Connection conn = new Connection("host");
conn.connect();
boolean testAuth = conn.authenticateWithPassword("user", "pwd");
Session sess = conn.openSession();
sess.execCommand(Commands); //"Commands" is a string variable with "sh" command.
そのログインのいくつかの環境変数を使用するリモート サーバーにあるシェル スクリプトを実行する必要があります。ログインは成功し、スクリプトは実行されますが、完了しません。Putty などの対話型ログイン シェル (「env」コマンドを使用) の実行と比較して、環境変数が完全に読み込まれていないことを確認しました。
スクリプトの前に /etc/profile、.bashrc などを実行してみました。スクリプトは 1 ステップ進みますが、再び停止します。したがって、すべてではなく、いくつかの環境変数がロードされたことは明らかです。Java 非対話型セッション用にすべての環境変数が確実にロードされるようにするための回避策が必要です。リモート サーバーのルート権限がありません。
ありがとう、アリア