node child_process exec 执行完命令不能终止进程。

代码如下,调用 下面函数 生成随机数。我想生成玩就终止进程,但调用终止进程方法,并不能终止。是我用的方式不对吗。没调用一次就开个进程。cpu 都要爆表了。
我机器是mac

const child_process = require('child_process');

async function generStr(){

    let childProcess="";
    
    const randomStr = await new Promise((resolve, reject) => {
    childProcess = child_process.exec("LC_CTYPE=C tr -dc A-Za-z0-9 < /dev/urandom | head -c 20");
    childProcess.stdout.on('data', (data) => {
      resolve(data.toString())
    });
    });
    
    console.log(process.platform)
    
    childProcess.kill()
    
    process.exit(0)
    
    childProcess.stdout.on('close', (code, signal) => {
    console.log(`子进程收到信号 ${signal} ${code}而终止`);
    });

    return randomStr;
}
阅读 12k
1 个回答

实测childProcess.kill(childProcess.pid+1)可行,这里我有点不清楚为啥返回的pid 不是子进程pid ,有了解的大牛还请帮忙解释下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题