Node.js 词条目录
前端Wiki/词条/child_process 子进程

child_process 子进程

定义创建并控制子进程的内置模块,用于执行系统命令或利用多核 CPU

child_process 提供四种创建方式:exec 与 execFile 执行系统命令并收集输出;spawn 以流的方式处理大量输出;fork 专门建立可双向通信的 Node 子进程。execSync 等同步变体会阻塞事件循环,只应该用在构建脚本等启动阶段。

spawn 与 exec 的区别在于输出处理:exec 把标准输出缓冲成字符串在结束时一次性回调,适合体量小的命令;spawn 以流的形式逐块产出,适合视频转码这种输出巨大的场景。fork 返回的子进程自带 IPC 通道,父子进程可以用 send 方法互相收发消息。

JavaScript
const { exec, spawn } = require('child_process');

// 收集式执行:适合输出小的命令
exec('git rev-parse --abbrev-ref HEAD', (err, stdout) => {
  if (err) throw err;
  console.log('当前分支: ' + stdout.trim());
});

// 流式执行:适合输出巨大的长命令
const task = spawn('ffmpeg', ['-i', 'in.mp4', 'out.mp4']);
task.stderr.on('data', (chunk) => {
  process.stdout.write(chunk);
});
task.on('close', (code) => {
  console.log('退出码: ' + code);
});
⚠ 常见误区
🔗 相关词条Node.js 的适用场景PM2 部署与守护
← 返回来源章节Node.js 的适用场景