nodejs child_process子进程运行两次

Edw*_*ard 6 child-process node.js

我想通过远程桌面连接上的完整计算机名称连接计算机.在nodejs中,我创建了一个子进程来执行cmd命令.它成功执行,但两分钟后再次执行.我使用了child_process模块​​的kill方法,它不起作用.

    var child_process = require('child_process');
    child_process.exec('mstsc /v ' + fullName, function(err, stdout, stderr) {
        if(err){
            console.log(err);
        }           
    });
    child_process.kill();
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?非常感谢你!

Adi*_*chi 2

我遇到了同样的问题,我花了一段时间才明白,问题是 HTTP 服务器而不是“chileProccess”。您的问题中缺少的链接是您通过HTTP请求运行executeScript(可能是expressJs,因为您在2分钟后超时)。

问题因为还不清楚。

实际发生的情况是,HTTP 请求达到了 HTTP 服务器设置的超时边界,在expressJS 中为 2 分钟。

超时后,由于没有处理,请求也没有关闭,所以再次调用,以此类推,每2分钟一次。

解决方案:

server.setTimeout()是为所有连接设置 HTTP 连接超时的方法。

默认为 2 分钟。

例子:

var express = require('express');
var http = require('http');

var app = module.exports.app = express();
var server = http.createServer(app);
server.setTimeout(10*60*1000); // 10 * 60 seconds * 1000 msecs
server.listen(appConfig.port, function () {
    var logger = app.get('logger');
    logger.info('**** STARTING SERVER ****');
});
Run Code Online (Sandbox Code Playgroud)