三木社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 245|回复: 0
打印 上一主题 下一主题

spawn() 方法

[复制链接]

1562

主题

1564

帖子

4904

积分

博士

Rank: 8Rank: 8

积分
4904
跳转到指定楼层
楼主
发表于 2017-7-28 08:49:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
child_process.spawn 使用指定的命令行参数创建新进程,语法格式如下:
  1. child_process.spawn(command[, args][, options])
复制代码
参数
参数说明如下:
command: 将要运行的命令
args: Array 字符串参数数组
options Object
  • cwd String 子进程的当前工作目录
  • env Object 环境变量键值对
  • stdio Array|String 子进程的 stdio 配置
  • detached Boolean 这个子进程将会变成进程组的领导
  • uid Number 设置用户进程的 ID
  • gid Number 设置进程组的 ID
spawn() 方法返回流 (stdout & stderr),在进程返回大量数据时使用。进程一旦开始执行时 spawn() 就开始接收响应。
实例
让我们创建两个 js 文件 support.js 和 master.js。
support.js 文件代码:
  1. console.log("进程 " + process.argv[2] + " 执行。" );
复制代码
master.js 文件代码:
  1. const fs = require('fs');
  2. const child_process = require('child_process');

  3. for(var i=0; i<3; i++) {
  4.    var workerProcess = child_process.spawn('node', ['support.js', i]);

  5.    workerProcess.stdout.on('data', function (data) {
  6.       console.log('stdout: ' + data);
  7.    });

  8.    workerProcess.stderr.on('data', function (data) {
  9.       console.log('stderr: ' + data);
  10.    });

  11.    workerProcess.on('close', function (code) {
  12.       console.log('子进程已退出,退出码 '+code);
  13.    });
  14. }
复制代码
执行以上代码,输出结果为:
  1. $ node master.js stdout: 进程 0 执行。

  2. 子进程已退出,退出码 0
  3. stdout: 进程 1 执行。

  4. 子进程已退出,退出码 0
  5. stdout: 进程 2 执行。

  6. 子进程已退出,退出码 0
复制代码


回复

使用道具 举报

Archiver|手机版|小黑屋|三木电子社区 ( 辽ICP备11000133号-4 )

辽公网安备 21021702000620号

GMT+8, 2025-7-27 07:17 , Processed in 0.050008 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表