2

我正在编写一个 java 代码来使用 java-ganymed 插件(也尝试使用 JSch)连接到 Unix 远程服务器。

    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.

我需要运行位于远程服务器上的 shell 脚本,该脚本使用该登录名的一些环境变量。我的登录成功,脚本执行但未完成。与运行像 Putty 等交互式登录 shell(使用“env”命令)相比,我检查了环境变量没有完全加载。

我尝试在我的脚本之前运行 /etc/profile、.bashrc 等。脚本向前移动了一步,但又停止了。因此很明显,加载了一些环境变量但不是全部。我需要解决方法以确保为 Java 非交互式会话加载所有环境变量。我没有远程服务器的 root 权限。

谢谢,艾莉亚

4

1 回答 1

0

与其尝试运行/etc/profileand .bashrc,不如尝试将它们用作源脚本。将其作为脚本或命令的一部分执行:

. .bashrc
. /etc/profile
. /etc/environment

或任何其他相关的配置脚本(文件开头的点广告很重要)。

于 2013-07-24T11:10:32.793 回答