即使java代码终止,JSch会继续执行命令吗?

时间:2014-06-29 07:29:13

标签: java remote-server jsch

我正在尝试使用java中的Jsch库在远程服务器上执行命令。

 ((ChannelExec) channel).setCommand(command);
 channel.connect();

现在我希望命令花一些时间在远程服务器上运行(比如说30分钟)。 在此期间,如果java程序被中止, 服务器中运行的命令会发生什么? 它会继续运行吗? 它会中止吗?

1 个答案:

答案 0 :(得分:0)

Jsch本身不会清理会话和频道,您必须专门关闭它们,否则它们会一直存在,直到您连接的主机终止为止。

但是,如果您的Java程序关闭并且JVM清理完毕,会话将在您的终端终止,并且大多数主机系统会在您的程序完成之前将时间用完。

您需要让Java程序在后台运行程序作为守护程序。这将允许命令在您断开会话后继续处理。

ChannelExec.setCommand(" myCommand> / dev / null 2>& 1&");