我正在尝试使用JSch通过SSH运行以下命令:
AlgoName -m /tmp/input1.txt -f /tmp/input2.txt> /tmp/output.txt
exitStatus 的值为 2 。该命令不能通过SSH与Jsch一起使用,但它在服务器上运行成功。
我的代码:
ChannelExec channelExec = (ChannelExec) s.openChannel("exec");
channelExec.setCommand(command);
channelExec.connect();
int exitStatus = channelExec.getExitStatus();
channelExec.disconnect();
答案 0 :(得分:0)
我正在尝试运行的算法是用Perl编写的,实际上当我通过JSCH执行远程SSH命令时,用于运行命令的用户配置文件没有加载,因此环境变量也没有加载。
解决方案是在运行命令时加载配置文件,如下所示:
bash -l -c 'AlgoName -m /tmp/input1.txt -f /tmp/input2.txt > /tmp/output.txt'