当我使用JSCH通过SSH运行命令时,ExitStatus 2

时间:2018-06-12 14:26:40

标签: java jsch

我正在尝试使用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();

1 个答案:

答案 0 :(得分:0)

我正在尝试运行的算法是用Perl编写的,实际上当我通过JSCH执行远程SSH命令时,用于运行命令的用户配置文件没有加载,因此环境变量也没有加载。

解决方案是在运行命令时加载配置文件,如下所示:

bash -l -c 'AlgoName -m /tmp/input1.txt -f /tmp/input2.txt > /tmp/output.txt'