产生一个执行命令的新进程

要生成一个需要无缓冲输出的新进程 (例如,长时间运行的进程可能会在一段时间内打印输出而不是立即打印和退出),请使用 child_process.spawn()

此方法使用给定命令和参数数组生成新进程。返回值是 ChildProcess一个实例,它反过来提供 stdoutstderr 属性。这两个流都是 stream.Readable实例。

以下代码相当于使用命令 ls -lh /usr

const spawn = require('child_process').spawn;
const ls = spawn('ls', ['-lh', '/usr']);

ls.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});

ls.stderr.on('data', (data) => {
  console.log(`stderr: ${data}`);
});

ls.on('close', (code) => {
  console.log(`child process exited with code ${code}`);
});

另一个示例命令:

zip -0vr "archive" ./image.png

可能写成:

spawn('zip', ['-0vr', '"archive"', './image.png']);