NodeJS为什么不从代码重启?

时间:2017-10-30 12:20:01

标签: node.js ssh

我需要使用SSH重新启动app.js并尝试以下代码:

/* APP - restart */
conn = new client()

/* SSH - connection */
conn.on('ready', function() {
    /* SSH - restart */
    conn.exec('killall -2 node && node --expose-gc /root/myfolderaps/app.js', function(err, stream) {
        /* SSH - restart error */
        if (err) return callback('Restart <b>'+results[Object.keys(results)][2]+'</b> Failed!');

        /* SSH - close */
        conn.end();

        /* APP - restarted */
        res.json({'status': 'true', 'message': 'Restarting <b>'+results[Object.keys(results)][2]+'</b> Success!'});
    })
}).on('error', function(err) {
    /* SSH - connection failed */
    if(err) return callback('Login To <b>'+results[Object.keys(results)][2]+'</b> Failed!');
}).connect({
    host: results[Object.keys(results)][3],
    port: '22',
    username: 'root',
    password: decrypt(results[Object.keys(results)][5], password),
    readyTimeout: 3000
})

我在节点中使用此库连接到SSH并执行:

https://github.com/mscdex/ssh2

问题是它使用SSH成功​​连接到服务器,执行命令并终止节点主进程和子进程,并且没有启动我的应用程序主进程(在主进程中我有代码启动子进程进行聚类)。

所以逻辑上我不知道为什么这不起作用我添加&amp;&amp;并且这意味着当第一个命令成功时执行另一个命令,因此该命令执行以下操作:

killall -2 node && node --expose-gc /root/myfolderaps/app.js

杀死节点主进程 启动节点app.js主进程

但它只会杀死它而不是开始。我该如何重写代码?

0 个答案:

没有答案