我正在使用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);
计时器将首次执行,但第二次不能执行。
答案 0 :(得分:2)
似乎在前一次调用时调用exec
可能会导致问题(至少,这是我测试脚本时的样子)。
使用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);