child_process子进程

子进程模块:childProcess = require("child_process");

1、var spawn = childProcess.spawn(command, [,args],[,options]])

     command: 只执行shell指令

     args: 执行参数列表

     options: 环境变量对象


其中环境变量对象有七个属性:

     env: 环境变量键值对

     cwd:子进程当前的工作目录

     stdio: 子进程的stdio配置

     customFds: 作为子进程stdio使用的文件标示符

     uid: 用户进程ID

     gid: 进程组ID

     detached: 进程组主控制

//windows系统下的命令;

var  spawn=require('child_process').spawn,

free=spawn('cat',['a.txt'],{cwd:'./a'});

// 捕获标准输出并将其打印到控制台

free.stdout.on('data',function(data){console.log('标准输出:'+data);});

// 捕获标准错误输出并将其打印到控制台

free.stderr.on('data',function(data){console.log('标准错误输出:'+data);})

;// 注册子进程关闭事件

free.on('exit',function(code,signal){console.log('子进程已退出,代码:'+code);});

2、childProcess.exec(command, function(err, stdout, stderr) {  })

其中command是shell命令,相当于spawn的command+args

var childProcess = require("child_process");

childProcess.exec('node linyanxiang.js', function(err, stdout, stderr) {

        console.log(stdout)

})

3.childProcess.execFile(command, [args], [options],function(error, stdout, stderr){});

是spawn与exec综合

command,args,options参数的含义与spawn的含义一样,回调函数的用法与exec一样。

4.fork 父进程与子进程之间建立通信

//父进程

var childProcess = require('child_process');

var subFork = childProcess.fork('sub.js');

subFork.on('message', function(m) {

       console.log("message" + m);

})

subFork.send({'hell0': 'world'})

//子进程

process.on('message', function(m) {

      console.log(m)

})

process.send({name:'dayday'})

你可能感兴趣的:(child_process子进程)