首页 Node.js核心模块手册

参数说明


exec(command, options, callback)
command                           字符串            需要运行的命令,参数使用空格隔开
options               可选          对象数组         开启子进程使用的选项
callback(              可选          回调函数         子进程终止,调用
  error,                子进程异常终止触发,获取异常码:error.code,获取强制关闭信号:error.signal
  stdout,              子进程标准输出对象
  stderr                子进程标准错误对象
) 

返回值:对象,子进程


options相关属性:
cwd:字符串,默认null,指定子进程工作目录,绝对或相对路径
env:对象数组,默认nill,指定子进程的环境变量键值对
encoding:字符串,默认utf8,指定标准输出、标准错误的编码格式
tmeout:整数,默认0不限制运行时间,指定子进程运行时间,单位毫秒
maxbuffer:整数,默认200*1024,设置子进程标准输出缓存大小,大于该值子进程将强制关闭字符出啊
killSignal:字符串,默认"SIGTERM",指定关闭子进程的信号
shell :字符串,将要执行命令的 Shell
uid:数字,设置用户进程的 ID(非windows有效)
gid:数字,设置进程组的 ID(非windows有效)


注:
1.spawn()是实时接收子进程标准输出,属于异步方法。
2.exec()需子进程标准输出缓存完毕后才能接收,属于同步方法

示例


主进程:文件名 a.js
var cp = require("child_process");
var ex = cp.exec("node b.js", function(err, stdout, stderr){
  if(err){
    console.log("子进程开启失败" + err);
    process.exit(); //关闭主进程
  }else{
    console.log("收到子进程消息:" + stdout);
  }
});

ex.stdin.write("www.liboke.cn");   //向子进程标准输入,写入信息
  

子进程:文件名 b.js
process.stdin.on("data", function(data){  //接收控制台输入
  process.stdout.write("子进程收到:"+data); //输出信息到控制台
   process.exit(0); //关闭进程
});