如何设置SSH Exec node.js错误超时

如何设置SSH Exec node.js错误超时,node.js,Node.js,在我的node js脚本中,我使用远程连接通过ssh exec在RPI ssh上运行脚本, 有时脚本失败,需要重新启动系统,为了让系统恢复,我需要等待2分钟 我尝试了下一件事: 运行脚本() 等待睡眠(60000) 但是脚本一直在运行,线程没有等待2分钟 我很高兴能得到一些帮助,因为我在重新启动时尝试了许多调用runScript的方法 您不需要setTimeout,在重新启动时调用runScript函数function@virender尼赫拉,没有任何超时或睡眠?运行脚本本身并不是一个承诺,所以

在我的node js脚本中,我使用远程连接通过ssh exec在RPI ssh上运行脚本, 有时脚本失败,需要重新启动系统,为了让系统恢复,我需要等待2分钟

我尝试了下一件事:

运行脚本() 等待睡眠(60000)

但是脚本一直在运行,线程没有等待2分钟

我很高兴能得到一些帮助,因为我在重新启动时尝试了许多调用runScript的方法
您不需要setTimeout,在重新启动时调用runScript函数function@virender尼赫拉,没有任何超时或睡眠?运行脚本本身并不是一个承诺,所以每次我使用它来等待它在1分钟内完成时,我都必须使用se sleep(60000)。当我这样做时,sudo重新启动ssh是否会失去连接?另外,这两个函数都运行并且不会使主脚本停止,因此这意味着在我调用runScript()之后;睡眠(60);还有一个错误,需要重新启动主脚本将在60秒后继续执行操作。如果使用sudo reboot,则会正常工作,然后服务器会断开连接并在2分钟后重新启动。因此,当系统重新启动时,nodeJs队列也被清除,并且您设置的超时无法工作,在这种情况下,只需在文件或数据库中存储一个标志,在重新启动后启动节点服务器时,检查文件/db if并运行脚本。我使用了一个标志来重新启动并延迟线程,它就可以工作了!非常感谢。
function runScript() {
        let exec = require('ssh-exec');
        let v_host = '';
        let ssh = exec('sudo RunScript', {
            user: 'user',
            host: '0.0.0.0',
            password: 'password'
        });
        ssh.pipe(process.stdout, function (data) {
            console.log("8started");
            console.log(data);
        });
        ssh.on('error', function (err) {
            console.log("\n\nREBOOT\n\n");
            reboot();
            console.log("time out on");
            setTimeout(runScript, 120000);
        });
    }

async function reboot() {
    let exec = require('ssh-exec');
    let ssh = exec('sudo reboot', {
        user: 'user',
        host: ip,
        password: 'password'
    });
    ssh.pipe(process.stdout, function (data) {
        console.log(data);
    });
    ssh.on('error', function (err) {
        console.log(err);
    });
function runScript() {
        let exec = require('ssh-exec');
        let v_host = '';
        let ssh = exec('sudo RunScript', {
            user: 'user',
            host: '0.0.0.0',
            password: 'password'
        });
        ssh.pipe(process.stdout, function (data) {
            console.log("8started");
            console.log(data);
        });
        ssh.on('error', function (err) {
            console.log("\n\nREBOOT\n\n");
            reboot();
        });
    }

async function reboot() {
    let exec = require('ssh-exec');
    let ssh = exec('sudo reboot', {
        user: 'user',
        host: ip,
        password: 'password'
    });
    ssh.pipe(process.stdout, function (data) {
        console.log(data);
        runScript()
    });
    ssh.on('error', function (err) {
        console.log(err);
    });