我试图在Windows上杀死由命令npm.cmd
(使用Node.js API生成)创建的子进程。
执行npm.cmd run build
之类的操作。使用process.kill()
似乎能够成功结束npm.cmd
命令,但不能使用npm命令创建的Node.js进程。
let cp = spawn('npm.cmd', ['run', 'build']);
cp.on('exit', code => {
// It will log after 5 seconds.
// But Node.js process created by `npm run build` will not end.
console.log(`Exited with code ${code}.`);
});
setTimeout(() => cp.kill(), 5000);
我尝试将process.kill()
替换为类似spawn('taskkill', ['/f', '/t', '/pid', process.pid])
的内容,但效果很好。如何使用Node.js API实现相同的功能?