このノードjsコードを使用して、無限ループを含むApp.exeファイルを実行しています。私は入力を渡し、App.exeから出力を取得します。ノードjsを使用して.exeファイルを閉じる
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の実行を停止する方法があります
の代わりに'cmd.exe'、' App.exe'を直接起動できませんか? – robertklep