用JAVA的check.ethz.ssh2包写了个连接Linux的程序,
我是用getSession来执行命令,可是一段时间后再调用getSession就会报错,the connection is being shutdown,
怎样保持Connection一直连接的,或者判断是否还连接着的,判断超时方法,这些有吗?
JAVA ethz ssh2 Connection连接超时
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 歇歇 2022-06-08 01:49关注
将root用户重新重命名回root或者代码判断
public String exec(String cmd,String strSplit) { InputStream stdout = null; StringBuffer sb = new StringBuffer(); Session sess = null; try { // System.out.println(this.login()); // if (this.login()) { if(conn != null && conn.isAuthenticationComplete()){ sess = conn.openSession(); sess.execCommand(cmd); stdout = new StreamGobbler(sess.getStdout()); BufferedReader br = new BufferedReader(new InputStreamReader(stdout)); while (true) { String line = br.readLine(); if (line == null) break; // System.out.println(line); sb.append(line); if(strSplit!=null&&!"".equals(strSplit)) sb.append(strSplit); } sess.waitForCondition(ChannelCondition.EXIT_STATUS, TIME_OUT); logger.warn(conn+"\t"+sess+"\tExitCode: " +sess.getExitStatus()); } // } } catch (Exception e) { // e.printStackTrace(); logger.error(ipAddr+"\t"+cmd); logger.error(ExceptionUtil.getExceptionMessage(e)); System.exit(2); } finally{ if(null != sess){ sess.close(); sess = null; logger.warn("session关闭"); } } return sb.toString(); }
解决评论 打赏 举报无用 3
悬赏问题
- ¥15 GDI处理通道视频时总是带有白色锯齿
- ¥20 用雷电模拟器安装百达屋apk一直闪退
- ¥15 算能科技20240506咨询(拒绝大模型回答)
- ¥15 自适应 AR 模型 参数估计Matlab程序
- ¥100 角动量包络面如何用MATLAB绘制
- ¥15 merge函数占用内存过大
- ¥15 Revit2020下载问题
- ¥15 使用EMD去噪处理RML2016数据集时候的原理
- ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
- ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数