保持SSH连接在nodejs中

我正在使用simple-ssh npm模块进行远程连接,并且在下面的代码中工作正常

var SSH = require('simple-ssh'); var ssh = new SSH({ host: 'localhost', user: 'username', pass: 'password' }); 

但问题是,当我第一次执行一个命令时它工作正常,但是当我尝试执行下一次进程闲置时。

  window.setInterval(function(){ ssh.exec('echo $PATH', { out: function(stdout) { console.log(stdout); } }).start(); }, 1000); 

定时器将首次执行它,但不会第二次运行。

看起来,调用exec时,以前的调用尚未完成可能会导致问题(至less,这就是当我testing你的脚本)。

而不是使用setInterval ,使用setTimeout并重置连接,当exec已经结束,但在开始一个新的呼叫之前。

这适用于我:

 setTimeout(function executeCommand() { ssh.exec('echo $PATH', { out: function(stdout) { console.log('S', stdout); }, exit: function() { ssh.reset(function() { setTimeout(executeCommand, 1000); }); } }).start(); }, 1000);