如何解决nodejs child_process spawn 和 exec 不会杀死 process.kill(pid) 上的进程
我在 nodejs 工作。我正在尝试使用 child_process spawn 和 exec 运行 .cmd
文件。但似乎没有一个工作。当我运行此脚本 .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',"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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。