我有函数通过ssh检索服务器上运行的命令的输出:
public static List<String> executeCmd(Session session, String cmd) throws IOException, JSchException{
System.out.println("Executing : "+cmd);
//String response = null;
List<String> l = new ArrayList<>();
ChannelExec ch= (ChannelExec)session.openChannel("exec");
if(ch == null)
throw new JSchException("Unable to create channel");
ch.setInputStream(null);
ch.setErrStream(System.err);
ch.setCommand(cmd);
ch.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(ch.getInputStream()));
String line;
while((line = in.readLine())!= null){
System.out.println(line);
l.add(line);
}
ch.disconnect();
return l;
}
如果我在调试模式下运行此程序,它将冻结in.readLine() 调用
我在eclipse中使用JSCh 1.51。
文件我试图在服务器上尾 - 一个日志文件。
&#39; tail -f
&#39;对于文件的腻子没有问题。
为什么这个程序在调试模式下会冻结?