我在nodejs工作。我正在尝试.cmd
使用 child_process spawn 和 exec 运行文件。但似乎没有一个工作。.cmd
当我运行此脚本时,Spawn 成功运行了该文件spawn('cmd', ['/c', 'start start_wMBusServices_CLI.cmd'])
。
但是在使用它杀死进程process.kill(pid)
时会产生以下错误。
spawn.kill()
根本不会杀死进程。
我做了一些挖掘,发现任务管理器中缺少进程(pid = 16580)。
而 child_process.exec 只是创建 pid 而根本不运行.cmd
。
现在,我想要的是,当我单击停止按钮时终止进程。
我需要一个简单的脚本来终止这个过程。
这是我的整个代码
let exec = null;
let pId = null;
function startStop() {
try {
if (!pId) {
exec = spawn('cmd', ['/c', "start start_wMBusServices_CLI.cmd"])
// <-- execFile didn't work -->
-------------------------------
// exec = execFile(executablePath, { encoding: 'utf-8' }, function (err, stdOut, stdErr) {
// console.error(err);
// console.error(stdErr);
// })
pId = exec.pid
console.log(pId);
// if(exec.killed)
// pId = null
}
else if (pId) {
// didn't work
--------------
// exec.kill()
// generates error shown before
-------------------------------
process.kill(pId)
}
} catch (err) {
console.error(err);
}
console.log(process);
}