首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用节点js关闭.exe文件

使用节点js关闭.exe文件
EN

Stack Overflow用户
提问于 2017-08-26 15:09:29
回答 2查看 1.2K关注 0票数 2

我使用这个节点的js代码来运行包含无限循环的App.exe文件。我传递输入并从App.exe获取输出。

代码语言:javascript
运行
复制
var bat = null;
app.post("/api/run", function(req, res) {
    if(req.body.success) {
        if(bat) bat.kill();
    }
    if(!bat) {
        bat = spawn('cmd.exe', ['/c App.exe']);
        bat.stderr.on('data', function (data) {
            res.end(JSON.stringify({error: true, message: data.toString()}));
        });

        bat.on('exit', function (code) {
            bat = null;
            console.log('Child exited with code ' + code);
            res.end(JSON.stringify({error: false, message: "Application Closed!"}));
        });
    }
    bat.stdin.write(req.body.input+'\n');
    bat.stdout.once('data', function (data) {
        console.log(data.toString());
        res.end(JSON.stringify({error: false, message: data.toString()}));
    });
});

问题是,在成功的情况下,当我杀除子进程时,子进程会被杀死,但App.exe仍在运行。我有没有办法阻止App.exe参选

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-26 15:19:33

您可以直接生成App.exe,而不是生成生成App.execmd.exe

代码语言:javascript
运行
复制
bat = spawn('App.exe');
票数 2
EN

Stack Overflow用户

发布于 2017-08-26 15:16:28

为了杀死node.js中衍生的进程,您需要使用SIGINT

代码语言:javascript
运行
复制
bat.kill('SIGINT');

所有POSIX信号及其作用的列表可在signal7上找到

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45892837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档