我正在编写一个java代码,使用java-ganymed插件连接到Unix远程服务器(也尝试使用JSch)。
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权限。
谢谢, 艾莉亚
答案 0 :(得分:0)
尝试使用它们作为源脚本,而不是尝试运行/etc/profile
和.bashrc
。执行此操作作为脚本或命令的一部分:
. .bashrc
. /etc/profile
. /etc/environment
或任何其他相关的配置脚本(点广告,文件的开头很重要)。