我正在尝试使用java中的Jsch库在远程服务器上执行命令。
((ChannelExec) channel).setCommand(command);
channel.connect();
现在我希望命令花一些时间在远程服务器上运行(比如说30分钟)。 在此期间,如果java程序被中止, 服务器中运行的命令会发生什么? 它会继续运行吗? 它会中止吗?
答案 0 :(得分:0)
Jsch本身不会清理会话和频道,您必须专门关闭它们,否则它们会一直存在,直到您连接的主机终止为止。
但是,如果您的Java程序关闭并且JVM清理完毕,会话将在您的终端终止,并且大多数主机系统会在您的程序完成之前将时间用完。
您需要让Java程序在后台运行程序作为守护程序。这将允许命令在您断开会话后继续处理。
ChannelExec.setCommand(" myCommand> / dev / null 2>& 1&");